【问题标题】:What does it mean to say that "null is a literal" in JavaScript?在 JavaScript 中说“null 是文字”是什么意思?
【发布时间】:2016-03-24 08:50:17
【问题描述】:

undefined 是一个全局变量,其值为 undefined — 一种数据类型,它本身只能有一个值。但是null 的值是多少?

MDN says:

null 是一个字面量。

这是什么意思?

我知道字面量是“你写进你的代码的东西”。比如 x = 3 + 4。

这里 3 和 4 将是整数文字。但我不明白 MDN 文档所说的内容。

【问题讨论】:

标签: javascript


【解决方案1】:

文字只是在我们的代码中写入值的一种方式。 null,您实际键入的内容,是一个定义值 null 的文字,就像 1 是一个定义值 1 的文字一样。null value 就是这样: 一个值(Null 类型中的唯一值),如 1 是一个值(Number 类型中的许多值之一)。

请记住,MDN 是社区编辑的资源。它通常非常好,但这取决于谁编写和/或随后编辑了该页面。有时术语有点偏离。让我们看一下您发布问题时该页面的开头句子:

null 是一个 JavaScript 文字,表示 null 或“空”值,即不存在对象值。

是的,这看起来像是一个编辑错误。它应该是这样的:

null 表示有意不存在任何对象值。

我稍后可能会对其进行编辑。 我已经对其进行了编辑,并且试图突出显示 null 的后续行是文字,而不是全局对象上的属性的标识符,例如undefined可以。

【讨论】:

  • 您能解释一下 MDN 页面中的术语是如何关闭的吗?我不清楚。说 null 的值是文字 有什么不对吗?
  • “请记住,MDN 是一个社区编辑的资源。它通常非常好,但这取决于谁编写和/或随后编辑了页面。” 好点;见stackoverflow.com/questions/36072936/…
  • @sabithpocker:是的,那是不正确的。 value 不能是 literal。同样,文字是您在代码中键入以表示特定值的内容。您使用文字来表示代码中的值(例如,console.log(42) 使用彼此相邻的字符 4 和 2 作为文字来表示值 42),但值不是文字。
  • 明白:) 谢谢。此外,下面的行解释了作者试图解释的内容“值 null 是文字(不是像 undefined 这样的全局对象的属性)。
  • @sabithpocker:啊,是的,很好观察。作者想说的是“null的值是用文字写的,null;它不是像undefined那样的全局对象的属性。”
【解决方案2】:

我不是专家,但我认为您已经有了答案:您说 3 和 4 是“整数文字”。引用维基百科:

在计算机科学中,字面量是在源代码中表示固定值的符号。

所以34 都是文字,还有34"hello"null 同样是字面量,但不是表示数字或字符串,而是表示虚无。

编辑:正如我所说,我不是专家,似乎我对文字不太正确。 T.J.克劳德解释得比我好,see his answer

【讨论】:

  • “文字是语言本身的成员” - 不,它不是。 3 和 4 并不是真正的“语言本身的成员”。
  • @nnnnnn 我想了解一下,那我们可以叫他们什么?我将它们视为语言的原子元素,这不就是文字吗?
  • 文字本质上是一个硬编码的值。不是变量,而是字面上拼写出来的特定值。也许我以您不希望的方式解释了您的答案,但我不会说数字文字 3 或字符串文字 "hello" 是该语言的元素 - 但允许您将它们包含在您的程序语言的一部分。如果这就是你的意思,那么我很抱歉。
  • 我明白你的意思,这确实是我的想法,虽然我没有像你说的那么清楚! "hello" 的例子是一个很好的例子,因为它一个文字,但同时这个词本身不是语言的一部分。谢谢你的解释,我会编辑我的答案:)
【解决方案3】:

Null 是 JS 中的原语之一。

在某些需要表示变量或引用中没有值的情况下,此原始类型用作文字。

不过话说回来,null 的字面值是有特殊含义的。

值得注意的是:

typeof null        // object (bug in ECMAScript, should be null)
typeof undefined   // undefined
null === undefined // false
null  == undefined // true

【讨论】:

    【解决方案4】:

    null 不是对象,没有方法,也没有任何值

    Null

    在计算机科学中,空值表示指向的引用, 通常是有意的,对一个不存在或无效的对象或 地址。空引用的含义因语言而异 实现。

    在 JavaScript 中,null 是原始值之一。


    Primitive

    原始(原始值,原始数据类型)是不是 一个对象,没有方法


    4.3.12空值

    表示有意不存在任何对象的原始值 价值

    4.3.13空类型

    唯一值为null 值的类型

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 2015-07-15
      • 2018-07-17
      • 1970-01-01
      • 2011-04-16
      • 2011-06-20
      • 2013-08-05
      • 2013-11-02
      • 1970-01-01
      相关资源
      最近更新 更多