读书笔记 - js高级程序设计 - 第三章 基本概念
启用严格模式 | "use strict" 这是一个 pragma 编译指示 |
让编码意图更清晰 | 是一个重要原则 |
5种简单数据类型 | Undefined Null Boolean Number String |
1种复杂数据类型 | Object |
检测数据类型的方法 |
typeof
有如下值:
undefined boolean object string number function
|
typeof Null | object |
意在保存对象还没有保存对象的变量的初始值最好是什么 | null |
八进制的第一位必须是 | 0 |
undefined == null 的结果 是 | true |
浮点数值使用注意事项 | 永远不要测试其值 |
最大数值 | Number.MAX_VALUE |
最小数值 | Number.MIN_VALUE |
判断数值是否有穷 | inFinite() |
NaN 是一个特殊的数值 两特点是 |
涉及它的操作结果都是NaN
和任何值包括它自己 都不相等
|
把别的进制数 转为 10进制数 | parseInt( "A", 16) ; |
把10进制数 转为 别的进制数据 | num.toString( 16 ) 即转为16进制数 |
object里有的属性和方法 |
constructor 保存着用于创建当前对象的函数
hasOwnProperty() 不能判断原型中的
isPrototypeOf 用于检查传入的对象是否是当前对象的原型
propertyIsNumerable() 用于检查给定的属性是否能够使用 for-in来枚举
toLocalString 返回对象的字符串表示
toString
valueOf 通常与toString方法返回的值相同
|
操作符分4类 |
算术操作符:++ --
位操作符: 非 与 或 异或,左移 右移 无符号右移
关系操作符:
相等操作符
|
按位非 NOT |
~num
即取反码
相当于负值减1
|
按位与 AND | a&b 都为1才是1 |
按位或 OR | a|b 只要有一个为1就是1 |
按位异或 XOR | a^a 两位不同才为 1 |
左移 |
a << 5
左移不会影响符号位
比如 -2 移 5位 会变成 -64
|
有符号的右移 | a >>5 和左移正好相反 |
无符号的右移 |
a >>> 5
如果原数是负数,数字会变得非常大,且变为正数
|
逻辑非 |
!a
|
逻辑与 |
a&&a
|
逻辑或 |
a||b
|
利用逻辑或的行为 设计默认值 | var result = preferredObj || backupObj |
乘性操作符有三个 | 乘法 除法 求模 |
加性操作符有两个 | + - ,+可用来拼拼字符串 |
关系操作符有4个 | > < >= <= |
相等操作符 | == === != |
条件操作符 | ? : |
赋值操作符 | *= /= %= += -= <<= >>= >>>= |
if 注意事项 | 一定要用代码块 |
do while | 后判断 |
while | 先判断 |
for 特点 | 里面声明的外部也可以访问 |
for in |
for( var propName in window ) 输出的属性名的顺序是不可预测的 在使用前 要先检测该对象的值不是null或undefined |
with | 严格模式下不可以用with |
switch |
每个case的值不一定是常量,也可以是变量 比较时,使用的是全等操作符 |
参数 |
永远是放到一个数组里 可用arguments依次访问 |
没有重载 | EcmaScript函数没有签名,因为其参数是由包含零或多个值的数组来表示的 |