您好,登錄后才能下訂單哦!
好程序員web前端培訓分享關于parseInt函數的一切 , 關于JS的手動類型轉換,parseInt是我們最早接觸的函數之一。
接下來我們詳細的總結一下它的用法,你可以點擊收藏,以備不時之需。
parseInt()
作用 是將參數(通常為字符串)強制轉換為整數。
它有兩個參數,第二個可以省略,我們先展示常見的用法
1. 轉換規則: 依次將字符串中從左到右的數字部分轉為整數,一旦轉換失敗,返回NaN。
(1) 參數是字符串類型:
var a = parseInt ( ‘ 10 ’ ); //將字符串轉成整數類型 console.log(a); // 10 var b = parrseInt( ‘ 10 true ’ ); //將有效數字部分轉為整數,提取開頭數字部分 console.log(b); // 10 var c = parseInt ( ‘ 10 true20 ’ ); //只將開頭有效部分轉為整數 console.log(c); //10 var d = parseInt ( ‘ 045 zoo ’ ); //開頭部分轉為整數,數字前面的0省略 console.log(d); //45 var f = parseInt ( ‘ 34.5 ’ ); //整數部分,小數點非數字部分,舍去 console.log(f); //34 var g = parseInt ( ‘ a3 ’ ); //若不是以數字開頭,轉為NaN(Not a Number 不是數字)的特殊數值 console.log(g); //NaN
(2) 參數是數字類型:
var a = parseInt ( 3.4 ); //依然轉為數字,但是取整 console.log(a); //3
(3) 其它數據類型:只要開頭不包含有效數字,結果都轉為NaN
var a = parseInt ( true );
console.log(a); //NaN
var b = parseInt ( null );
console.log(b); //NaN
var c = parseInt ( undefined );
console.log(c); //NaN
var d = parseInt ([]);
console.log(d); //NaN
var e = parseInt ({});
console.log(e); //NaN
接下來,我們看第二個參數的用法
第二個參數:表示進制,范圍2~36(用來說明第一個參數的進制規則)
var a = parseInt ( ‘ 99 ’ , 10 ); // 如果字符串為十進制內容,該參數可省略 console.log(a); // 99
var a = parseInt ( ‘ 1001 ’ , 2 ); // ‘1001’ 符合二進制規則, 轉為十進制整數 console.log(a); // 9
var a = parseInt ( ‘ 1001 ’ , 10 ); // ‘1001’同樣符合十進制, 轉為十進制整數 console.log(a); // 1001
var b = parseInt ( ‘ 234 ’ , 2 ); //‘234’不符合二進制的規則 console.log(b); // NaN
var b = parseInt ( ‘ abcde ’ , 2 ); //‘abcde’不符合二進制的規則 console.log(b); // NaN
var c = parseInt ( ‘ 1022 ’ , 2 ); //‘10’部分屬于二進制,但‘22’不是,將開頭有效的部分提取并轉成十進制 console.log(c); //2
如果以0x或0X開頭,即使不說明進制規則,也能識別
var e = parrseInt( ‘ 0xa ’ ); //0x是十六進制的表示方法,a是十六進制中的10,轉換成整數后自動切換為十進制 console.log(e); //10
盡量不使用出現e的數字,由于只能識別開頭部分,會造成結果混亂 此時應使用parseFloat方法替代
parseInt ( "6.022e23" , 10 ); // 返回 6 parseInt ( 6.022e2 , 10 ); // 返回 602
非常大或非常小的數字
parseInt ( 4.7 * 1 e22, 10 ); // 非常大的數值變成 4 parseInt ( 0.00000000000434 , 10 ); // 非常小的數值變成 4
在最新的ES5規范中,以0開頭的數字,已經不能再被識別為八進制了。
parseInt ( "011" ); //會當成10進制轉換為 11 parseInt ( "011" , 8 ) //指定了8進制,結果為 9
總結:
以上測試均來自最新版的chrome瀏覽器,并不能確保所有瀏覽器行為一致。為了保證開發中不出現意外, 建議使用parseInt方法時,一律帶上第二個參數 !
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。