数据类型 跟 返回数据类型 是不一样的。
数据类型有: number boolean string undefined null object
其中,基本数据类型为: number boolean string null undefined
引用数据类型为:Object(Array,Date,RegExp,Function)
typeof 返回的数据类型有: number boolean string undefined object function symbol(es6新增)
typeof undefined == “undefined” ; typeof null == “object”
面试题:
请选择结果为真的表达式:
A. null instanceof Object
B. null === undefined
C. null == undefined
D. NaN == NaN
E. Object === Object
答案是C与E。
解析:
对于Null类型的值(只有null),规范就是定义返回"object"这个字符串。但是本质上Null和Object不是一个数据类型,null值并不是以Object为原型创建出来的。所以null instanceof Object是false。但从这里也可以看到,null确实是javascript中用来表示空引用的一个特殊值。使得它不是instanceof Ojbect,而typeof null是“object”。在语义上也是可以理解的。