在Javascript中,有一個十分常用的字符串轉整數的函數,即parseInt()
。但是,在一些特殊的場合下,這個函數并不能如我們所愿地正常運行,比如出現了前導空格、非數字字符等。此時我們需要使用另一個函數Number.parseInt()
。本篇文章主要介紹這個函數的使用方法及其注意事項。
我們先來看看Number.parseInt()
的語法:
Number.parseInt(string, radix);
其中string
代表要轉換為整數的字符串;radix
則是一個可選參數,表示要將字符串解析為幾進制數,默認為10進制。使用時,我們只需要傳入字符串作為第一個參數即可。
舉個例子,假設我們有一個字符串"123",我們可以這樣使用Number.parseInt()
:
let str = "123"; let num = Number.parseInt(str); console.log(num); //輸出 123
如果傳入的字符串是一個帶有非數字字符的字符串,那么在默認情況下解析時會被停止解析,返回之前解析的整數。比如:
let str = "42 is the answer to life."; let num = Number.parseInt(str); console.log(num); //輸出 42
需要注意的是,如果傳入的字符串以前導空格開頭,則在默認情況下解析時會忽略前導空格。比如:
let str = " 42 is the answer to life."; let num = Number.parseInt(str); console.log(num); //輸出 42
如果希望在轉換時考慮前導空格,需要手動將radix參數設置為10。比如:
let str = " 42 is the answer to life."; let num = Number.parseInt(str, 10); console.log(num); //輸出 NaN
此時輸出結果為NaN,因為在10進制下,字符串" 42"不是合法的整數。
在指定不同進制下的字符串解析時,需要將radix參數設置為想要解析的進制數。比如:
let str = "1010"; let num2 = Number.parseInt(str, 2); console.log(num2); //輸出 10 let str_hex = "A"; let num_hex = Number.parseInt(str_hex, 16); console.log(num_hex); //輸出 10
可以看到,通過設置radix為2或16,我們可以將字符串"1010"和"A"正確地解析為對應的十進制數。需要注意的是,radix的取值范圍在2和36之間,如果超出該范圍,則返回NaN。比如:
let str = "123"; let num = Number.parseInt(str, 100); console.log(num); //輸出 NaN
最后,需要特別注意的是,在將字符串轉換為整數時,一定要記得進行合法性校驗。否則會出現一些意想不到的錯誤。比如:
let str = "10 and 20"; let num = Number.parseInt(str); console.log(num); //輸出 10
在上面的例子中,我們將字符串"10 and 20"直接傳入Number.parseInt()
中,并沒有進行合法性校驗。這樣會導致函數只解析了"10"這個整數,而將"and 20"部分忽略掉了。為了避免這種情況的發生,我們需要對字符串進行合法性校驗,確保其僅包含符合要求的整數部分。
以上就是對Number.parseInt()
的介紹及其使用方法的詳細說明。希望此篇文章對大家有所幫助。