【每日一题】2013年12月10日

请选择结果为真的表达式:( )

A. null instanceof Object 
B. null === undefined 
C. null == undefined  
D. NaN == NaN

 这个题目跑一遍大家其实都可以知道结果,这个题目看似没有什么太大意义,但是你可以试着跑一下

typeof null //"object"


那为何 null instanceof Object //false呢?

引用Bosn Ma的发言

null可以用来表示对象不存在,但本身属于NULL类型。

typeof null === "object"

并非因为null是"Object",而是历史遗留问题。JS创始人也曾讨论并尝试修复typeof null === "null", 但在V8引擎中实现后导致大量问题,因此提案被拒绝。

详情参见:
http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null

原文地址:https://www.cnblogs.com/nunn/p/3466915.html