【问题标题】:What is the difference between Null, NaN and undefined in JavaScript? [duplicate]JavaScript 中的 Null、NaN 和 undefined 有什么区别? [复制]
【发布时间】:2018-10-23 13:07:14
【问题描述】:

JavaScript 中的NullNaNundefined 有什么区别?

我遇到了所有三个值,并且在我找到它们的上下文中将它们理解为“这里什么都没有” - 但我希望能更详细地解释为什么 它们会出现,以及它们在不同上下文中的含义(例如,针对数组、针对类或变量)。

【问题讨论】:

  • 它们的类型不同,通常使用的上下文也不同。
  • @Bergi 是的,我明白这一点,但我希望得到更详细的答案。我也是在考虑新手用户的情况下问这个问题。

标签: javascript


【解决方案1】:

NaN: Not a number:顾名思义,用来表示一个对象的值不是数字。产生此错误的方法有很多,一种是无效的数学运算,例如 0/0 或 sqrt(-1)

undefined:表示对象没有任何值,因此未定义。当您创建一个变量但没有为其赋值时会发生这种情况。

null:表示对象为空,没有指向任何内存地址。

【讨论】:

  • 更非正式和简洁一点NaN - “不是一个有效的数字”通常在你做了一些应该产生但不能产生的操作之后。 undefined - 它存在,但还没有被赋予值null - 它存在并且故意赋予它一个空值。这就是他们背后的想法——基本上是三个不同的“非价值”能指。当然,人们可以根据需要以不同的方式使用它们,但通常就是这样理解的。
  • @vlaz undefined 是访问存在的东西时使用的默认值
  • @Bergi 好吧,这取决于您在那里的定义。对我来说这是有道理的,因为如果你这样做obj.missingValue,即使missingValue 属性不存在,object 也会存在。同样,在只有一个元素的数组上执行 arr[42] 会产生 undefinedarr 本身存在。因此,也许更正确的说法是您可以访问一个给定的东西,但它还没有被赋予任何价值。
猜你喜欢
  • 2021-10-29
  • 2018-03-19
  • 2017-11-16
  • 2016-12-23
  • 2023-03-18
  • 1970-01-01
  • 2015-07-19
  • 2013-10-19
  • 1970-01-01
相关资源
最近更新 更多