['object',false]
在javascript第一版本中,单个值在栈中占用32位的存储单元,而这32位存储单元又分为类型标签(1-3位)和实际数据。
类型标签存储在低位中。
- 000 => object类型
- 001 => number类型(整数)
- 010 => number类型(浮点型)
- 100 => string类型
- 110 => boolean类型
- undefined => 整数-2^30(整数之外)
- null => 0到31位皆为0(正好满足第0-3位皆为0的情况)
这就是typeof null 为object 的原因
instanceof运算符是用来检测构造函数的prototype属性是否出现在某个实例对象的原型链上,
null作为一种基本数据类型, 显然 (null instanceof Object) 为 false