【问题标题】:Javascript - Assigning null to a variable mistake [duplicate]Javascript - 将null分配给变量错误[重复]
【发布时间】:2018-10-02 10:30:33
【问题描述】:

我试图运行这段代码。

var is_null = null;
console.log(typeof is_null);

当我在控制台中观看时,为什么“is_null”向我显示对象。 Null 如何成为对象。 Null 是 Javascript 中的对象吗?请告诉我它是一个错误还是它背后有一些历史。

Null 不是任何语言的对象。那么为什么 Null 是一个对象或在 JavaScript 中显示为对象(在控制台中)?

【问题讨论】:

  • 我的问题不同。为什么NULL是JS中的对象? Null 不能是我们都知道的对象。那为什么控制台显示它是一个对象?
  • @xkrlaix 请阅读该问题的所有答案。
  • 请阅读我在文档某处阅读的答案。

标签: javascript


【解决方案1】:

伙计们,我在这里看到了一些东西。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

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

针对 ECMAScript 提出了修复建议(通过选择加入),但被拒绝了。它会导致 typeof null === 'null'。

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

有人可以解释一下吗?因为我没有完全明白。

【讨论】:

  • 表示设计有误。在网络上,错误并没有得到修复......
  • 是的。这是一个错误。可以在严格模式下处理。
  • @xkrlaix 严格模式并不能解决这个问题。
  • 有些语言的严格模式认为 null 是一个对象,这是一种耻辱。
猜你喜欢
  • 2021-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
  • 2020-11-22
  • 2018-07-06
  • 1970-01-01
  • 2015-11-19
  • 2018-03-16
相关资源
最近更新 更多