解惑parseInt

李赫feixuan發表於2018-07-24
parseInt() 函式可解析一個字串,並返回一個整數


語法

parseInt(string, radix)


引數描述
string必需。要被解析的字串。
radix

可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間。

如果省略該引數或其值為 0,則數字將以 10 為基礎來解析。如果它以 “0x” 或 “0X” 開頭,將以 16 為基數。

如果該引數小於 2 或者大於 36,則 parseInt() 將返回 NaN。


注:當引數 radix 的值為 0,或沒有設定該引數時,parseInt() 會根據 string 來判斷數字的基數:如果 string 以 "0x" 開頭,parseInt() 會把 string 的其餘部分解析為十六進位制的整數。如果 string 以 0 開頭,那麼 ECMAScript v3 允許 parseInt() 的一個實現把其後的字元解析為八進位制或十進位制的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進位制的整數。

例項

console.log(parseInt("20"))
//20複製程式碼

console.log(parseInt("0x12"))
//18
16進位制: 1*16 + 2 = 18複製程式碼

console.log(parseInt("29",10))
//29
10進位制 2*10 + 9 = 29複製程式碼

console.log(parseInt("19",37))
// NaN
console.log(parseInt("19",1))
// NaN
不再2-36範圍複製程式碼

console.log([010,"10","10","10"].map(parseInt))
// [8, NaN, 2, 3]複製程式碼

等同於

        var arr1 = [010,"10","10","10"];
	arr1.map(function(item,index,arr1){
	    return parseInt(item,index)
	})
        //第1次呼叫
	console.log(parseInt(010,0))//未定:返回 10 或 8
        //第2次呼叫
	console.log(parseInt(10,1)) //NaN
        //第3次呼叫
	console.log(parseInt(10,2)) // 2
        //第4次呼叫
	console.log(parseInt(10,3)) //3複製程式碼

console.log(parseInt("321x123"))
//321

複製程式碼


相關文章