區分parseInt() 和Number():揭示語意差異
在JavaScript 中,parseInt() 和Number() 發揮關鍵作用將字串轉換為數值。儘管它們有共同的目的,但它們表現出的不同行為需要仔細考慮。
型別轉換與解析:語意解開
從根本上來說,Number() 充當一個建構函數,執行型別轉換,將提供的字串轉換為數字。另一方面,parseInt() 進行解析,努力從字串中提取數字內容。
不同情境中的數字擷取
這些語意差異體現在有形的結果。觀察以下範例:
-
解析:
- parseInt("20px") // 20
- parseInt("10100", 2 ) // 20(二進位conversion)
- parseInt("2e1") // 2
-
型別轉換:
型別轉換:
型別轉換:
型別轉換:
型別轉換:
型別轉換:Number("2e1") // 20(指數表示法)
- 尾隨字元和數字偵測
-
- parseInt() 表現出額外的細微差別:它忽略尾隨字元不構成指定的數字base.
八進位和十六進位:導航數字基數與Number() 不同,parseInt() 本質上可以偵測隱式八進位表示法。此外,這兩個函數都可以無縫處理十六進位表示法:Number("0o10") // 8(顯式八進位)parseInt(" 010") // 8(隱式八進位) 數字("0xF") // 15parseInt("0xF") // 15 統一轉換方法:一元加運算子一元加運算子( ) 為數字型別轉換提供了一種通用的替代方法,有效地反映了Number(): "2e1" // 20 "0xF" // 15 "010" // 10
以上是在 JavaScript 中什麼時候應該使用「parseInt()」與「Number()」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!