typeof(null) 返回 object
null instanceof Object 返回 false
因为null作为js数据类型中的一种,本来就不是object?
至于为何typeof(null)返回的是object,这个和typeof的定义有关
11.4.3 The typeof Operator
The production UnaryExpression : typeof UnaryExpression is evaluated as follows:
1. Evaluate UnaryExpression.
2. If Type(Result(1)) is not Reference, go to step 4.
3. If GetBase(Result(1)) is null, return "undefined".
4. Call GetValue(Result(1)).
5. Return a string determined by Type(Result(4)) according to the following table:
Type Result
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Object (native and
doesn’t implement
[[Call]])
"object"
Object (native and
implements [[Call]])
"function"
Object (host) Implementation-dependent
本文深入探讨了JavaScript中typeof操作符对于null类型的处理方式,解释了为何typeof(null)会返回'object',以及null instanceof Object返回false的原因。通过ECMAScript规范详细说明,帮助读者理解JavaScript类型检查的底层逻辑。
1467

被折叠的 条评论
为什么被折叠?



