<<JavaScript 高级程序设计>> 读书笔记 - 第三章: 基本概念
第三章 - 基本概念
操作符
摘要: 各种操作符的概念与技巧
-
number() 方法可将变量转换为 number 类型, 但是 number(undefined) 结果为 NaN
-
'+' 一元操作符, 同 number() 方法一样 (包括对象里 valueOf() 或 toString()) , 可将变量强制转换为number 类型. ^^page: 38
-
逻辑与操作中 (&&) , 如果有一个操作数不是布尔值, 则会在满足条件 (满足逻辑与的条件, 即第一个操作数必须为 true) 后返回第二个对象, **一般会在回调函数里使用: **
callback && callback(), 逻辑或同理. ^^page: 45 -
逻辑与、逻辑或操作都属于短路操作, 即满足第一个操作就不会再去判断第二个操作, 如: (false && undefined)后面的undefined不会去判断, 也就不会出错 (逻辑与、逻辑或不能判断未声明的变量) . ^^page: 45&46
-
加法操作需要注意字符串与数值相加的时候, 数值被转换为字符串, 如:
console.log('233'+3+3) // '23333' console.log('233'+(3+3)) // '2336'^^page: 48
-
关系操作符中当字符串比较时, 会将第一个字符转换成字符编码在作对比, 且一 一对比下去, 直到对比出结果. 如:
var result = '23' < '3' // true, 因为'2'的编码小于'3'的编码 var res = '23' > 3 // true, 因为'23'会转换为数字23再与3比较数值与字符串对比时, 字符串转换成数值, 如果转换失败则是 NaN (任何比较结果都为 false) .
注: 字符串必须全部是数字, 否则值都为 NaN. ^^page: 50
-
相等操作中特殊值NaN、null、undefined的特别说明:
NaN == NaN // false null == undefined // true null === undefined // false, 类型不同^^page: 52
-
使用复合赋值操作符 (如: +=, -=等) 只是简化操作, 不会带来任何性能的提升. ^^page: 54
-
逗号操作符用于赋值时, 逗号操作符总会返回表达式中的最后一项, 如:
var num = (5,1,4,8,0) // num = 0^^page: 54
语句
摘要: 语句基础
-
for-in 用于枚举对象的属性, 语法:
for (var property in expression) { // 建议在控制语句加入 var , 保证其作为局部变量 // statement }通过 for-in 循环的属性名顺序是不可预测的. 如果迭代对象的变量值为 null 或 undefined 时, for-in 不会执行循环体, 也不会报错. ^^page: 57
-
label 标签表示外部的 for 语句, 作用是在嵌套循环中结束外部循环或者跳过本次外部循环, 如:
outfor: //定义label标签, 名字为outfor for(var i = 0; i < 10; i++) { for(var j = 0; j < 10; j++){ if(i == 5 && j == 5){ break outfor //标签outfor代表最外层循环, 此时退出的是整个循环 } } }^^page: 59 && https://www.jb51.net/article/100027.htm
-
switch语句与其他语言的不同点在于js中switch语句可以使用任何数据类型, 注: switch语句在比较时是全等操作符, 不会发生类型转换. ^^page: 62
函数
摘要: 函数基本语法
-
函数基本语法:
function functionName (arg0, arg1) { // statement }函数使用
return返回值, 会停止函数, 如果不带返回值, 则函数停止后返回undefined, 一般会在提前停止函数且不需要返回值时使用. ^^page: 63 -
函数不限制参数 (类型和数量). 参数是由 arguments 对象访问. arguments[0] 代表第一个参数, 以此类推.声明函数时,参数个数已经确定, 所以实参多于声明时参数个数时, 函数无法拿到多出来的实参值. 相反, 如果实参少于声明时参数的个数, 可以通过 arguments 对象访问到该实参值.
-
由于函数的参数特性, 函数不能实现重载, 只能判断传入参数的类型和数量不同来实现类似重载的功能, 如:
// 累加功能 function doAdd () { var i = argument.length - 1 var num = arguments[0] while (i > 0) { num += arguments[i] i-- } return num } doAdd(5, 10, 15, 20) // 50

浙公网安备 33010602011771号