为什么typeof (null) == 'object'在JavaScript
Why typeof (null) == 'object' in JavaScript?
我刚刚注意到以下表达式是JavaScript中的true
:
typeof (null) == 'object'
这看起来真的很奇怪,假设我有一个具有null
值的变量,typeof
为该变量返回object
!
我想知道为什么typeof (null)
是object
在JavaScript?
这是有争议的(参见下面的讨论),它通常被认为不是很好,但它有一个基本原理:null
值代替了对象,它是当您期望对象而没有对象时所拥有的值。
From ECMAScript:
null:表示有意不存在任何对象值的原始值。
这与NaN
是"number"
类型完全相同。
在JavaScript的第一个实现中,JavaScript值被表示为一个类型标记和一个值。对象的类型标签为0。null表示为null指针(在大多数平台中为0x00)。因此,null将0作为类型标记,因此返回值
的伪类型
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
相关文章:
- 如何取消object.prototypes javascript的一个函数
- JavaScript-从对象数组中输出随机OBJECT
- 什么是“;原型;通过JavaScript中的Object Literal Notation创建的对象的链接
- javascript表单字段submit:Object dos'在IE8中不支持此属性或方法
- 如何在javascript中访问Object中的Object
- javascript对象显示为null,但object.properties返回数据
- JavaScript returns [object Object]
- object响应时出现对象错误javascript
- Android/Javascript:Uncaught TypeError Object[Object]没有方法'
- ToString 将 Javascript Object 更改为 Undefined
- 如何使用javascript将Object传递给控制器
- Google Api - Seperate Object - JavaScript
- 从 Object javascript 中成对匹配
- JSON to Object - JavaScript
- Object JavaScript内部的数组
- check object Equal object javascript
- object javascript类/字典中的键
- 从另一个对象扩展而不使用object.JavaScript中的assign (ES6特性)
- Object.isEmpty vs .isEmpty() vs _.isEmpty(Object) javascript
- 当用户按下后退按钮时,使用History object/javascript将用户重定向到特定的锚