4

我正在研究 JavaScript 的数字类型系统。

我正在使用 Chrome,当我评估15--一个数字文字时,我得到一个ReferenceError,因为递减一个常数是没有意义的。

当我按预期进行评估时var x=10;x--;,一切正常。

预期var a=Infinity;a--评估为Infinity,这一切都有意义并且符合javascript 语言规范

然而令我惊讶的是Infinity--Infinity++Infinity与其他文字不同。

这也发生Number.POSITIVE_INFINITY在相同的情况下。

tl;博士:

为什么在产生参考误差时会Infinity--产生无穷大?15--(new Number(15))--

4

2 回答 2

11
于 2013-02-08T17:10:59.540 回答
1

Because there is no such thing as a the number infinity, it is a concept, and thus in coding it isn't built as other constants but as an object like null or undefined but with some properties thrown in to make it behave nice with Math methods.

于 2013-02-08T17:15:34.697 回答