最近复习js基础,typeof(null) == 'object',但为什么null instanceof Object却是false,让我无法理解,在此记录一下,从别人那里看到的解释.
1、null表示为空的引用;instanceof 表示某个变量是否是某个对象的实例 ;object则是对象界里的“原始天尊”……万物始祖
undefined和null比较特殊,虽然null的类型是object,但是null不具有任何对象的特性,就是说我们并不能执行null.toString()、null.constructor等对象实例的默认调用。所以从这个意义上来说,null和undefined有最大的相似性。看看null == undefined的结果(true)也就更加能说明这点。不过相似归相似,还是有区别的,就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN(非数字值)。故null instanceof Object判读为false。
2、typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number、boolean、string、object、undefined、function等6种数据类型。null肯定不是undefined,当然是object。