由于 JavaScript 有數字分隔符 ( _
, U 005F
)。
為什么Number("3_0")
回傳NaN
?它不應該像Number("0x08")
回傳 8 那樣作業嗎?
Number.isNaN(Number("3_0")) // true
Number.isNaN(Number(3_0)) // false
Number("3_0") === 30 // false
Number(3_0) === 30 // true
uj5u.com熱心網友回復:
根據規范,數字文字接受的語法與字串值在轉換為數值時接受的語法之間存在一些差異。
不同之處之一是
StringNumericLiteral 不能包含 NumericLiteralSeparator。
如果我不得不猜測,原因是接受這些字符會改變現有有效 JavaScript 代碼的行為,這可能會破壞正在運行的應用程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/487525.html
標籤:javascript 数字
下一篇:無效的陣列長度分配失敗