溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

好程序員web前端培訓(xùn)分享關(guān)于parseInt函數(shù)的一切

發(fā)布時間:2020-08-12 16:05:14 來源:ITPUB博客 閱讀:147 作者:好程序員 欄目:web開發(fā)

   好程序員web前端培訓(xùn)分享關(guān)于parseInt函數(shù)的一切 關(guān)于JS的手動類型轉(zhuǎn)換,parseInt是我們最早接觸的函數(shù)之一。

   接下來我們詳細(xì)的總結(jié)一下它的用法,你可以點擊收藏,以備不時之需。

parseInt()

作用 是將參數(shù)(通常為字符串)強(qiáng)制轉(zhuǎn)換為整數(shù)。

它有兩個參數(shù),第二個可以省略,我們先展示常見的用法

1. 轉(zhuǎn)換規(guī)則: 依次將字符串中從左到右的數(shù)字部分轉(zhuǎn)為整數(shù),一旦轉(zhuǎn)換失敗,返回NaN。

(1) 參數(shù)是字符串類型:

var   a   =   parseInt ( 10 );   //將字符串轉(zhuǎn)成整數(shù)類型 console.log(a);   // 10 var   b   =   parrseInt( 10 true );   //將有效數(shù)字部分轉(zhuǎn)為整數(shù),提取開頭數(shù)字部分 console.log(b);   // 10 var   c   =   parseInt ( 10 true20 );   //只將開頭有效部分轉(zhuǎn)為整數(shù) console.log(c);   //10 var   d   =   parseInt ( 045 zoo );   //開頭部分轉(zhuǎn)為整數(shù),數(shù)字前面的0省略 console.log(d);   //45 var   f   =   parseInt ( 34.5 );   //整數(shù)部分,小數(shù)點非數(shù)字部分,舍去 console.log(f);   //34 var   g   =   parseInt ( a3 );   //若不是以數(shù)字開頭,轉(zhuǎn)為NaN(Not a Number 不是數(shù)字)的特殊數(shù)值 console.log(g);   //NaN

(2) 參數(shù)是數(shù)字類型:

var   a   =   parseInt ( 3.4 );   //依然轉(zhuǎn)為數(shù)字,但是取整 console.log(a);   //3

(3) 其它數(shù)據(jù)類型:只要開頭不包含有效數(shù)字,結(jié)果都轉(zhuǎn)為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

接下來,我們看第二個參數(shù)的用法

第二個參數(shù):表示進(jìn)制,范圍2~36(用來說明第一個參數(shù)的進(jìn)制規(guī)則)

  var   a   =   parseInt ( 99 , 10 );   // 如果字符串為十進(jìn)制內(nèi)容,該參數(shù)可省略   console.log(a);   // 99  

  var   a   =   parseInt ( 1001 , 2 );   // ‘1001’ 符合二進(jìn)制規(guī)則, 轉(zhuǎn)為十進(jìn)制整數(shù)   console.log(a);   // 9

  var   a   =   parseInt ( 1001 , 10 );   // ‘1001’同樣符合十進(jìn)制, 轉(zhuǎn)為十進(jìn)制整數(shù)   console.log(a);   // 1001

  var   b   =   parseInt ( 234 , 2 );   //‘234’不符合二進(jìn)制的規(guī)則   console.log(b);   // NaN

  var   b   =   parseInt ( abcde , 2 );   //‘a(chǎn)bcde’不符合二進(jìn)制的規(guī)則   console.log(b);   // NaN

  var   c   =   parseInt ( 1022 , 2 );   //‘10’部分屬于二進(jìn)制,但‘22’不是,將開頭有效的部分提取并轉(zhuǎn)成十進(jìn)制   console.log(c);   //2

一些特殊說明

如果以0x或0X開頭,即使不說明進(jìn)制規(guī)則,也能識別

var   e   =   parrseInt( 0xa );   //0x是十六進(jìn)制的表示方法,a是十六進(jìn)制中的10,轉(zhuǎn)換成整數(shù)后自動切換為十進(jìn)制 console.log(e);   //10

盡量不使用出現(xiàn)e的數(shù)字,由于只能識別開頭部分,會造成結(jié)果混亂 此時應(yīng)使用parseFloat方法替代

parseInt ( "6.022e23" ,   10 );          // 返回 6 parseInt ( 6.022e2 ,   10 );            // 返回 602

非常大或非常小的數(shù)字

parseInt ( 4.7   *   1 e22,   10 );   // 非常大的數(shù)值變成 4 parseInt ( 0.00000000000434 ,   10 );   // 非常小的數(shù)值變成 4

在最新的ES5規(guī)范中,以0開頭的數(shù)字,已經(jīng)不能再被識別為八進(jìn)制了。

parseInt ( "011" );    //會當(dāng)成10進(jìn)制轉(zhuǎn)換為   11 parseInt ( "011" ,   8 )     //指定了8進(jìn)制,結(jié)果為  9

總結(jié):

以上測試均來自最新版的chrome瀏覽器,并不能確保所有瀏覽器行為一致。為了保證開發(fā)中不出現(xiàn)意外, 建議使用parseInt方法時,一律帶上第二個參數(shù) !

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI