parseInt() 函數可解析一個字符串,並返回一個整數。
parseInt(string, radix)
| 參數 | 描述 |
|---|---|
| string | 必需。要被解析的字符串。 |
| radix | 可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間,該參數可以省略或為0 如果省略該參數或其值為 0,則數字將以 10 為基礎來解析。如果string以 “0x” 或 “0X” 開頭,將以 16 為基數。 如果該參數小於 2 或者大於 36,則 parseInt() 將返回 NaN。 |
說明
當參數 radix 的值為 0,或沒有設置該參數時,parseInt() 會根據 string 來判斷數字的基數:如果 string 以 "0x" 開頭,parseInt() 會把 string 的其余部分解析為十六進制的整數。如果 string 以 0 開頭,那么 ECMAScript v3 允許 parseInt() 的一個實現把其后的字符解析為八進制或十進制的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數。
parseInt("10"); //返回 10 parseInt("0x12") //返回18 十六進制 parseInt("010"); //未定:返回 10 或 8 瀏覽器理解為八進制或十進制
parseInt("19",10); //返回 19 (10+9) parseInt("11",2); //返回 3 (2+1) parseInt("17",8); //返回 15 (8+7) parseInt("1f",16); //返回 31 (16+15)
parseInt("19",14); //返回 23 (14+9)
parseInt("19",18); //返回 27 (18+9)
parseInt("19",37); //返回 NaN 基數不在2-36范圍內
parseInt("11",1); //返回 NaN 基數不在2-36范圍內
parseInt("92",8); //返回 NaN 9>8 字符串數字不能大於基數
拓展
["1", "2", "3"].map(parseInt)輸出什么?
["1", "2", "3"].map(parseInt)等同於
["1","2","3"].map(function(ele,index){
return parseInt(ele,index)
})
等於調用了三次parseInt方法:
第一次 parseInt("1",0) //基數為0時,按照上邊陳述即為10進制,返回 1
第一次 parseInt("2",1)//基數為1,不在2-36范圍內,默認輸出NaN
第一次 parseInt("3",2)//基數為2,因為字符串3大於基數不合法,解析為NaN
答案也就是:[1, NaN, NaN]
/** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ████━████ ┃+ * ┃ ┃ + * ┃ ┻ ┃ * ┃ ┃ + + * ┗━┓ ┏━┛ * ┃ ┃ * ┃ ┃ + + + + * ┃ ┃ * ┃ ┃ + 神獸保佑 * ┃ ┃ 代碼無bug * ┃ ┃ + * ┃ ┗━━━┓ + + * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ + + + + * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛+ + + + */
