阮一峰js教程总结
1、
js三种方法确定值得类型
- typeof
- instanceof
- Object.prototype.toString
null和undefined的区别
区别是这样的:
-
null 是一个表示“空”的对象,转为数值时 为 0 ;
-
-undefined 是一个表示”此处无定义”的原始值,转为数值时为 NaN 。
-
注意,空数组( [] )和空对象( {} )对应的布尔值,都是 true 。
0.1与0.3问题
0.1 + 0.2 === 0.3 2. // false
0.3 / 0.1 5. // 2.9999999999999996
(0.3 - 0.2) === (0.2 - 0.1) 8. // false
NaN
- “非数字”( NaN ),typeof NaN // ‘number’
- NaN 不等于任何值,包括它本身。
- NaN 在布尔运算时被当作 false 。
- NaN 与任何数(包括它自己)的运算,得到的都是 NaN 。
- isNaN()方法可以用来判断一个值是否为 NaN 。isNaN(NaN) // true 2. isNaN(123) // false
isNaN 只对数值有效,如果传入其他值,会被先转成数值。比如,传入字符串的时候,字符串 会被先转成 NaN ,所以最后返回 true ,这一点要特别引起注意。也就是 说, isNaN 为 true 的值,有可能不是 NaN ,而是一个字符串
对于空数组和只有一个数值成员的数组, isNaN 返回 false 。
isNaN([]) // false
isNaN([123]) // false
isNaN(['123']) // false
数值相关的全局方法
- parseInt()
- parseInt(‘1000’, 2) // 8
字符串
Base64 转码
Base64 就是一种编码方法,可以将任意值转成 0~9、A~Z、a-z、 + 和 / 这64个字符组 成的可打印字符
对象
- 对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名)
- 如果键名是数值,会被自动转为字符串。
- 查看一个对象本身的所有属性,可以使用 Object.keys 方法, Object.keys(obj);// [‘key1’, ‘key2’]
- delete 命令用于删除对象的属性,删除成功后返回 true 。能删除对象本身的属性,无法删除继承的属性
- 属性是否存在:in 运算符,自身和原型链上的都算
- 对象的 hasOwnProperty 方法判断一下,是否为对象自身的属性。
- for…in 循环用来遍历一个对象的全部属性。,对象所有可遍历(enum