1. js的八种数据类型:
Number、String、Boolean、Object、undefined、Null、ES6新增:Symbol、BigInt。
2. JS的基本类型和引用类型:
基本类型(单类型): 除Object。Number、String、Boolean、undefined、Null
引用类型:Object。包含Data、function、Array
注意:NaN是Number中的一种特殊数值,NaN不等于NaN, isNaN检测是否是NaN
3. js的typeof输出分别是什么?
{}、[]、new Date输出Object
console.log 输出function
typeof null 输出object, 这是一个历史遗留的bug(将错就错),期望引用一个对象。
4. null和undefined的区别
Null 只有一个值,是 null。不存在的对象。
Undefined 只有一个值,是undefined。没有初始化。undefined 是从 null 中派生出来的。
简单理解就是:undefined 是没有定义的,null 是定义了但是为空。
5. 比较 == 、===、Object.is(val, val)
(1) == 比较数值,如果俩边类型不一致,会先转换为同类型。
(2) === 严格相等,比较数值、类型、地址 NaN不等于NaN, +0等于-0
(3) Object.is(val, val) 可以比较对象,严格相等,NaN等于NaN, +0不等于-0
6. Symbol ES6新增功能
Symbol 类型的对象永远不相等,即便创建的时候传入相同的值。因此,可以用解决属性名冲突的问题(适用于多少编码),做为标记。
7. BigInt chrome67中的新功能
Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围。