题目
console.log(typeof null);
console.log(null instanceof Object);
控制台的打印结果是什么?
答案:object false
typeof方法返回一个字符串,来表示数据的类型。
typeof undefined — undefined
typeof null — object
typeof 布尔值 — boolean
typeof 数值 — number
typeof 字符串 — string
typeof 任何对象 — object (null为特殊对象)
typeof 函数对象 — function
typeof null为’object’这属于历史遗留下来的,有api文档给出的解释如下: “在 JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。由于 null 代表的是空指针(大多数平台下值为 0x00),因此,null的类型标签也成为了 0,typeof null就错误的返回了‘object’。”(引自MDN api 文档)
instanceof运算符可以用来判断某个构造函数的prototype属性是否存在于另外一个要检测对象的原型链上。
null与object都是js的数据类型,并不属于同一数据类型,null并不是有object原型创建出来的,object的原型链上不会存在null相关的内容。
故null instanceof Object为false。
始发于微信公众号: 前端麻辣烫