为什么 typeof 为空“对象”?

新手上路,请多包涵

我正在阅读“面向 Web 开发人员的专业 Javascript”第 4 章,它告诉我五种类型的原语是:未定义、空、布尔值、数字和字符串。

如果 null 是原语,为什么 typeof(null) 返回 "object"

这是否意味着 null 是通过引用传递的(我假设这里所有对象都是通过引用传递的),因此它不是原始对象?

原文由 thetrystero 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 274
1 个回答

关于 typeof 运算符行为的 MDN 页面

null

 // 这从 JavaScript 开始就代表
typeof null === '对象';

在 JavaScript 的第一个实现中,JavaScript 值表示为类型标记和值。对象的类型标记为 0 null 表示为 NULL 指针(在大多数平台中为 0x00)。因此,null 具有 0 作为类型标记,因此“对象” typeof 返回值。 ( 参考

为 ECMAScript 提出了一个修复方案(通过选择加入),但 被拒绝了。它会导致 typeof null === 'null'

原文由 Deepak Ingole 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏