[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 规范,在为变量赋值时,ECMAScript 解释程序必须判断该值是原始类型 还是引用类型。ECMAScript 解释程序在处理原始类型和引用类型的变量赋值机制上,采用了 不同的方式。 ECMAScript 的原始类型包括 Undefined、Null、Boolean、Number 和 String 五大类型。因 此,ECMAScript 解释程序在为变量赋值时,就会先判断该值是否为这五大原始类型。而 Ecma-262 Ecma-262 规范对于引用类型的定义比较抽象,其实引用类型就是一个对象,类似于 Java 语言 中类(class)的概念。如果 ECMAScript 解释程序判断出值不是原始类型,那么就是引用类型。 由于原始类型的值所占据的空间是固定的,因此可将其存储在占用较小内存区域的“栈” 中,这种存储机制便于 ECMAScript 解释程序迅速查找变量的值。而如果一个值是引用类型, 那么其存储空间将从“堆”中分配。 为“值 的一个集合”,其中每种原始类型均定义了其所包含值的范围及其字面量的表示形式。 ECMAScript 语法提供“typeof”运算符来判断一个值是否在某种类型的范围内。设计人 员不但可以用该运算符判断一个值是否表示一种原始类型,还可以判断出其具体表示哪种原始 类型。在 JS 脚本中使用“typeof”运算符将返回下列值之一: � undefined:如果变量是 Undefined0 码力 | 52 页 | 3.83 MB | 1 年前3
跟我学Shiro - 张开涛也是非常简单;其基本功能点如下图所 示: Authentication:身份认证/登录,验证用户是不是拥有相应的身份; Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用 户对某个资源是否具有某个权限; Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 又委托给 SecurityManager; 2、 我们需要给 Shiro 的 SecurityManager 注入 Realm,从而让 SecurityManager 能得到合法 的用户及其权限进行判断。 从以上也可以看出,Shiro 不提供维护用户/权限,而是通过 Realm 让开发人员自己注入。 接下来我们来从 Shiro 内部来看下 Shiro 的架构,如下图所示: 实现(shiro-realm.ini) String getName(); //返回一个唯一的 Realm 名字 boolean supports(AuthenticationToken token); //判断此 Realm 是否支持此 Token AuthenticationInfo getAuthenticationInfo(AuthenticationToken token) throws0 码力 | 219 页 | 4.16 MB | 10 月前3
廖雪峰JavaScript教程录 致谢 JavaScript教程 1 JavaScript简介 2 快速入门 2.1 基本语法 2.2 数据类型和变量 2.3 字符串 2.4 数组 2.5 对象 2.6 条件判断 2.7 循环 2.8 Map和Set 2.9 iterable 3 函数 3.1 函数定义和调用 3.2 变量作用域 3.3 方法 3.4 高阶函数 3.4.1 map/reduce 下面的一行代码包含两个语句,每个语句用 ; 表示语句结束: 1. var x = 1; var y = 2; // 不建议一行写多个语句! 语句块是一组语句的集合,例如,下面的代码先做了一个判断,如果判断成立,将执行 {…} 中的所有 语句: 1. if (2 > 1) { 2. x = 1; 3. y = 2; 4. z = 3; 5. } 注意花括号 false 变成 true : 1. ! true; // 结果为false 2. ! false; // 结果为true 3. ! (2 > 5); // 结果为true 布尔值经常用在条件判断中,比如: 1. var age = 15; 2. if (age >= 18) { 3. alert('adult'); 4. } else { 5. alert('teenager');0 码力 | 264 页 | 2.81 MB | 10 月前3
C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器categories[key].push_back(str); } • 则 categories 最后为: • {‘h’: {“happy”, “hello”}, ‘w’: {“world”}}; 第二章:判断与删除 不鞋习的小彭友 就会进到这儿 ! 不鞋习的小彭友 就会进到这儿 ! 找不到时,自动采用默认值 • 要求:当 m 中有 “ key” 时返回 key 对应的值,否则返回指定的默认值 “ default” 覆盖旧值 创建并写入值 m.at(key) = val 覆盖旧值 抛出 out_of_range 异常 判断 if (m.count(key)) 返回 1 返回 0 删除 m.erase(key) 删除这个值 默默放弃 小彭老师四定律: 读取,要用 at 。 写入,要用 [] 。 判断存在,用 count 。 删除,用 erase 。 这四个已经够用了。 map 常用函数不同情况下的行为分析 m.insert_or_assign(key, val) 覆盖旧值 创建并写入值(更高效, C++17 新 增) m.at(key) = val 覆盖旧值 抛出 out_of_range 异常 判断 if (m.count(key)) 返回 1 返回 0 删除 m.erase(key) 删除这个值 默默放弃 对学有余力的同学,再扩充为小彭老师六定律: 安全的读取,要用 val = m.at(key)0 码力 | 90 页 | 8.76 MB | 1 年前3
CmlPHP v2.x 开发手册
开发/cli(计划 任务下)/正式环境,读取相应目录下的配置文件。下面对 Config 目录下的文件做详细说明 自v2.7.2起。 cli/development/product 这三个环境的判断组件也是可拨插替换的。 也就 是说假如你觉得 cli/devolopment/product 不够用,想分成按照域名加载配置文件。 如 http://dev.com 从dev.com 目录取配置。 之外的域名框架识别为正式环境,默认加载 Config/normal.php 这个通用配置文件 自定义配置加载实现 自v2.7.2起。 cli/development/product 这三个环境的判断组件也是可拨插替换的。 也就是说假如你 觉得 cli/devolopment/product 不够用,想分成按照域名加载配置文件。 如 http://dev.com 从 dev.com 目录取配置。 * 开启时 mysql的查询缓存不会在数据变更时实时更新。 * 所以如果要开启请确定开启后不会对业务造成影响。如:扣积分前的查询积分数,这种对数据实时要求高 的,在开启本模式时要做下判断并屏蔽。 */ 'emergency_mode_not_real_time_refresh_mysql_query_cache' => false, //配置成int型则 为缓存刷新周期。如配置成0 码力 | 143 页 | 1.54 MB | 1 年前3
CmlPHP v2.x 开发手册
开发/cli(计划任务下)/正式环境,读取相应目录 下的配置文件。下面对 Config 目录下的文件做详细说明 自v2.7.2起。 cli/development/product 这三个环境的判断 组件也是可拨插替换的。 也就是说假如你觉 得 cli/devolopment/product 不够用,想分成按照域名加载 配置文件。 如 http://dev.com 从dev.com 目录取配 之外的域名框架识别为 正式环境,默认加载 Config/normal.php 这个通用配置文件 自定义配置加载实现 自v2.7.2起。 cli/development/product 这三个环境的判断组件也 是可拨插替换的。 也就是说假如你觉 得 cli/devolopment/product 不够用,想分成按照域名加载配置文 件。 如 http://dev.com 从dev.com 目录取配 \Cml\Http\Request::host() 判断是否为手机浏览器 \Cml\Http\Request::isMobile() 判断是否为POST请求 \Cml\Http\Request::isPost() 判断是否为GET请求 \Cml\Http\Request::isGet() 判断是否为AJAX请求 \Cml\Http\Request::isAjax() 判断是否以cli方式运行 \Cml0 码力 | 245 页 | 720.67 KB | 1 年前3
Python3 基础教程 - 廖雪峰........................................................................................... 53 条件判断 .................................................................................................. 变成 False,False 变 成 True: >>> not True False >>> not False True >>> not 1 > 2 True 布尔值经常用在条件判断中,比如: if age >= 18: print('adult') else: Python3 基础教程【完整版】 http://www.yeayee.com/ 38/531 基础教程【完整版】 http://www.yeayee.com/ 60/531 参考源码 the_list.py the_tuple.py 条件判断 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。 比如,输入用户年龄,根据年龄打印不同的内容,在 Python 程序中, 用 if 语句实现: age = 20 if age >= 18:0 码力 | 531 页 | 5.15 MB | 1 年前3
CmlPHP v2.x 开发手册
是 开发/cli(计划任务下)/正式环境,读取相应目录下的配置文件。下面对 Config 目录 下的文件做详细说明 自v2.7.2起。 cli/development/product 这三个环境的判断组件也是可拨插替换 的。 也就是说假如你觉得 cli/devolopment/product 不够用,想分成按照域名加 载 配 置 文 件 。 如 http://dev.com 从 dev 之外的域名框架识别为正式环境,默认加载 Config/normal.php 这个通用配置文件 自定义配置加载实现 自v2.7.2起。 cli/development/product 这三个环境的判断组件也是可拨插替换的。 也就 是说假如你觉得 cli/devolopment/product 不够用,想分成按照域名加载配置文件。 如 http://dev.com 从dev.com 目录取配置。 http://pro * 开启时 mysql的查询缓存不会在数据变更时实时更新。 * 所以如果要开启请确定开启后不会对业务造成影响。如:扣积分前的查询积分数,这种对数据实时要求高 的,在开启本模式时要做下判断并屏蔽。 */ 'emergency_mode_not_real_time_refresh_mysql_query_cache' => false, //配置成int型则 为缓存刷新周期。如配置成0 码力 | 251 页 | 973.37 KB | 1 年前3
ThinkJS 2.2 中文文档为了避免这种情况的发生,文件路径尽量都使用小写字符。并且在服务启动时,ThinkJS 会检测项 目下文件路径,如果有大写字母则会告警,如: 缩进使用 2 个空格 在 Node.js 环境下开发,有时候逻辑比较复杂,有各种条件判断,或者有一些异步操作,这些都会 增加代码的缩进。 为了不至于让缩进占用了太多的列宽,建议使用 2 个空格作为缩进。 使用 ES6 语法开发 [2015-10-13 10:36:59] [WARNING] 此时可以通过单个异步接口返回特定值来判断,如: export default class extends think.controller.base { async indexAction(){ //忽略略该接⼝口的错误(该接⼝口的错误不不重要,可以忽略略) await this.getFromAPI1().catch(() => {}); //异常时返回特定值 false 来判断 let false); if(result === false){ return this.fail('API2 ERROR'); } } } 如上面代码所述,通过返回特定值判断就可以方便的知道是哪个异步接口发生了错误,这样就可 以针对不同的错误返回不同的错误信息。 如何忽略异常 使用 async/await 时,如果 Promise 返回了一个 rejected Promise,那么会抛出异常。如果这个异0 码力 | 277 页 | 3.61 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Kotlin 版如果把具体的工作技能比作是武功的“招式”的话,那么基础科目应该更像是“内功”。 我认为学算法(以及其他基础科目)的意义不是在于在工作中从零实现它,而是基于学到的知识,在解决问 题时能够作出专业的反应和判断,从而提升工作的整体质量。举一个简单例子,每种编程语言都内置了排序 函数: ‧ 如果我们没有学过数据结构与算法,那么给定任何数据,我们可能都塞给这个排序函数去做了。运行顺 畅、性能不错,看上去并没有什么问题。 C 的时间复杂度相同,但实际运行时间差别很 大。同样,尽管算法 B 的时间复杂度比 C 高,但在输入数据大小 ? 较小时,算法 B 明显优于算法 C 。对 于此类情况,我们时常难以仅凭时间复杂度判断算法效率的高低。当然,尽管存在上述问题,复杂度分 析仍然是评判算法效率最有效且常用的方法。 2.3.2 函数渐近上界 给定一个输入大小为 ? 的函数: fun algorithm(n: Int) 不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 ?(?) 呢?总体分 为两步:首先统计操作数量,然后判断渐近上界。 1. 第一步:统计操作数量 针对代码,逐行从上到下计算即可。然而,由于上述 ? ⋅ ?(?) 中的常数项 ? 可以取任意大小,因此操作数量 ?(?) 中的各种系数、常数项都可以忽略。0 码力 | 382 页 | 18.48 MB | 10 月前3
共 532 条
- 1
- 2
- 3
- 4
- 5
- 6
- 54













