我使用Chrome瀏覽器60.x,並測試代碼isNaN([3])
。 結果是false
,但我無法理解它。爲什麼NaN([3])在JavaScript中是錯誤的?
[3]
是一個數組,它不是空的。 我認爲[3]
是數組對象,它不是一個數字。
否則isNaN(["ABC"])
的結果是true
。 而isNaN([1,2,3])
的另一個結果是true
。 所以我想javascript引擎是強制改變數組,其中數組有一個單一的元素。
請讓我知道發生了什麼isNaN
數組參數的函數。
REF1:Why is isNaN(null) == false in JS?
REF2:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN
[編輯]謝謝大家的回答。
我明白JavaScript比較前隱式解析了值。
我在閱讀Nina Scholz的回答時發現了一個有用的鏈接。
比較表:http://dorey.github.io/JavaScript-Equality-Table/
在標題你說'isNaN([3])= FALSE',在問題,你說,它是真... 它是什麼? – campovski
強打字與弱打字。在。爲方便起見,允許使用某些語言,隱式轉換。在其他情況下,所有人都必須明確可靠性。 – WGroleau
雖然'[3]'是確定性的[1,2,3]不是,JS通過應用類型強制隱式地使用這個事實。 – Redu