Javascript Infinity--(无穷大减去负数)产生无穷大

Ben*_*aum 4 javascript infinity

我在看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))--产生引用错误?

Fel*_*ing 11

Infinity在您的示例中使用的实际上不是值,而是指Infinity全局对象属性:

15.1全球对象

[...]

15.1.1全局对象的值属性

[...]

15.1.1.2无穷大
的值Infinity+?(见8.5).此属性具有{[[Writable]]:false,[[Enumerable]]:false,[[Configurable]]:false} 属性.

因此,Infinity--相同window.Infinity--是完全有效的.