【发布时间】:2014-10-14 12:28:25
【问题描述】:
如果两个对象相加等于NaN(不是数字),技术上是数字类型,那么为什么要获取类型两个对象加在一起会产生“字符串”?
我将通过 REPL 表达这一点:> {} + {}> NaN
好的。两个对象相加会产生 NaN
> typeof(NaN)> "number"
好的。我们知道NaN的类型是“数字”
> typeof({} + {})> "string"
等待。这不应该也是“数字”吗?
我知道 javascript 的类型系统不太理想,但我对这里发生的事情感到困惑。是否出于某种原因将类型从数字转换为字符串?数字甚至是这里进行的类型转换的一部分吗?还是我只是使用 typeof 错误?
【问题讨论】:
-
{}+{} !== ({}+{})Unary_plus -
第一个大括号形成一个块。因为 JavaScript。另请参阅以这个例子为特色的精彩演讲:destroyallsoftware.com/talks/wat
标签: javascript object types nan typeof