2011-12-15 33 views
18

我知道Number.POSITIVE_INFINITY的值爲Infinity,而Number.NEGATIVE_INFINITY的值爲-InfinityInfinity vs Number.POSITIVE_INFINITY

是否有原因我會用Number.POSITIVE_INFINITY而不是InfinityNumber.NEGATIVE_INFINITY而不是-Infinity

在相關說明中,是否存在任何與isFinite有關的跨瀏覽器問題?

回答

17

Number.POSITIVE_INFINITY是一個常數並且因此不可覆蓋,而Infinitywindow一個屬性,是重寫:

Number.POSITIVE_INFINITY = 123; 
Number.POSITIVE_INFINITY; // Infinity 

Infinity = 123; 
Infinity; // 123 

這是一回事undefinedNaN,它們基本上的window和重寫特性。依靠window.undefined也不是一件好事;而是你想自己生成一個'真實'undefined(就像在一個自動執行的函數中,你不傳遞一個參數但是在函數中聲明它)。

規格:

15.7.3.6 Number.POSITIVE_INFINITY

Number.POSITIVE_INFINITY值是+∞

此屬性有屬性{ [[Writable]]:false, [[Enumerable]]: false, [[Configurable]]: false }

在ES5的覆蓋能力已被刪除:

15.1.1:值屬性NaNInfinity和全局對象的undefined已被更改爲只讀屬性。


關於isFinite:我曾經發布了question,爲什麼谷歌關閉圖書館實現了isFinite一個自定義函數,得到的回答是,有可能是一些跨瀏​​覽器的不一致,雖然目前還不清楚哪個瀏覽器和哪個不一致。

+4

+1,我喜歡學習新東西 – Joe 2011-12-15 15:35:49