为什么typeof (null) == 'object'在JavaScript

Why typeof (null) == 'object' in JavaScript?

本文关键字:object JavaScript typeof 为什么 null      更新时间:2023-09-26

我刚刚注意到以下表达式是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