【发布时间】:2013-09-15 02:02:55
【问题描述】:
我正在阅读“面向 Web 开发人员的专业 Javascript”第 4 章,它告诉我五种类型的原语是:未定义、空值、布尔值、数字和字符串。
如果null 是原语,为什么typeof(null) 返回"object"?
这是否意味着null 是通过引用传递的(我假设这里所有的对象都是通过引用传递的),因此它不是原始的?
【问题讨论】:
-
答案:因为规范是这样说的。这通常被认为是一个错误。
-
注意,typeof 是一个操作符,而不是一个函数(事实上你可以省略它后面的括号),所以在这里讨论通过引用传递是没有意义的。 “JavaScript: The Good Parts”一书实际上在附录 A 题为“糟糕的部分”的 A.6 节中提到了 typeof null === 'object'。
-
我想我想读《糟糕的部分》哈哈
-
大错特错,深不可测! :)
-
那么我们应该使用什么来代替 typeof 来检查变量所持有的值的类型呢?我很想知道它之间是什么(布尔值、字符串、数字、数组、对象、函数、符号、null、未定义、NaN)
标签: javascript primitive