数据类型
- 基本数据类型:Boolean Number String null undefined symbol BigInt
- 引用数据类型:object(普通对象、数组对象、正则对象、日期对象…)、function
JS中数据类型的检测
1.typeof [value]
- 检测的结果是一个字符串(number、object、undefined、function、bigint…)
- 特殊的检测结果
- NaN/Infinity是number
- null的结果是object(暂时性死区)
其实就是浏览器的bug,null是空对象指针(基本类型),而对象是键值对结构,所以null不可能是对象;这种现象是因为浏览器把二进制编码中,前三位是000的当作对象,而null符合这个条件
- 普通对象、正则对象、数组对象结果都是object
面试题1
console.log(typeof []); //=>"object"
console.log(typeof typeof []);//=>"string"
面试题2:已经一个变量,无法确定其数据类型。我们需要判断,当x的类型是对象的时候,则处理对应的事,写出判断的韩函数
if (x != null && typeof x == "object"){}