为了账号安全,请及时绑定邮箱和手机立即绑定

为什么类型为空“Object”?

为什么类型为空“Object”?

呼唤远方 2019-06-26 16:43:52
为什么类型为空“Object”?我正在阅读“面向Web开发人员的专业Javascript”第4章,它告诉我五种类型的原语是:未定义的、空的、布尔的、数字的和字符串的。如果null是原语,为什么typeof(null)回归"object"?那不意味着null是通过引用传递的(我假设这里所有的对象都是通过引用传递的),从而使它不是一个原语?
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

在JavaScript的第一个实现中,JavaScript值被表示为类型标记和值,对象的类型标记为0,和null表示为NULL指针(0x00在大多数平台上)。因此,NULL有0作为一个类型标签,因此是假的。typeof返回值(参照系).

 typeof null === 'object'; // This stands since the beginning of JavaScript

为ECMAScript(通过选择)提出了一个“修复”。它将导致:

typeof null === 'null'

..但这个变化是拒绝,因为使用这个特定的“怪癖”来测试的代码出现了问题。null.


查看完整回答
反对 回复 2019-06-26
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

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

因为规范是这么说的.

11.4.3这个typeof操作者

生产单真表达 : typeof 单真表达评价如下:

  1. 放任

    瓦尔

    是评价的结果

    单真表达.

  2. 如果

    类型(瓦尔

    )是

    参照系

    ,然后


    a.如果

    IsUnresvableReference(瓦尔

    )是

    千真万确

    ,返回“

    undefined".

    b.让

    瓦尔

    盖特瓦卢(瓦尔).

  3. 返回由

    类型(瓦尔

    )根据表20。


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 698 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号