2012-05-08 58 views
5

什麼是NaN,Object或primitive?JavaScript:什麼是NaN,Object或primitive?

的NaN - 非數

+0

NaN是Number類的一個屬性 – rsplak

+1

'typeof NaN ==「number」' –

+1

NaN與NULL類似。 你可以參考這個[SO帖子] [1] [1]:http://stackoverflow.com/questions/559792/what-is-the-reserved-keyword-for-nan -in-javascript –

回答

4

NaN是一個原始數字值。就像1,2等。

1

NaN是全局對象的屬性。

NaN的初始值是Not-A-Number-與 Number.NaN的值相同。在現代瀏覽器中,NaN是不可配置的, 不可寫屬性。即使情況並非如此,請避免 覆蓋它。

在程序中使用NaN相當罕見。當Math函數失敗時(Math.sqrt(-1))或嘗試對數字進行解析的函數失敗時(parseInt(「blabla」)),返回值爲 。

Reference

8

這是一個原始的。您可以檢查在許多方面:

  • typeof NaN給「號,」而不是「對象」。

  • 添加屬性,它消失。 NaN.foo = "hi"; console.log(NaN.foo) // undefined

  • NaN instanceof Number給出了錯誤(但我們知道它是一個數字,所以它必須是原始的)。

它不會真正意義楠是一個對象,因爲像0/0表現需要引起NaN,並且數學運算總是導致原語。把NaN作爲一個對象也意味着它不能作爲一個虛假的價值,它在某些情況下也是如此。

相關問題