JavaScript 的八進位陷阱和實用解決方法
在JavaScript 中處理整數解析時,必須注意其在遇到前導零時的非常規行為。 JavaScript 將它們解釋為八進制整數,從而導致意外的結果。
例如,解析「08」和「09」會產生 0,因為它們在基數 8 中不存在。為了避免這個陷阱,有幾個解決方法:
1。顯式基數規格:
透過明確指定基數(基數),可以指示 parseInt 將前導零視為十進位數字。
parseInt('08', 10); // 8 parseInt('09', 10); // 9
2. Number 物件:
Number 物件為 parseInt 提供了更直接的替代方案。它會自動將輸入轉換為十進制整數。
Number('08'); // 8 Number('09'); // 9
附加說明:
JavaScript 標準 (ECMA-262) 版本 5 引入了一項重大更改,消除了這種八進制行為。然而,值得注意的是,這項變更並未得到瀏覽器的普遍支持,尤其是舊版本。因此,仍建議實作上述解決方法以實現跨瀏覽器相容性。
以上是如何避免 JavaScript 意外的八進位整數解析?的詳細內容。更多資訊請關注PHP中文網其他相關文章!