好程式設計師web前端培訓分享關於parseInt函式的一切
好程式設計師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方法時,一律帶上第二個引數 !
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2691547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端培訓分享JavaScript相關知識程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript學習筆記函式進階程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享JavaScript框架J程式設計師Web前端JavaScript框架
- 好程式設計師web前端培訓分享Vue面試題程式設計師Web前端Vue面試題
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享CSS定位的教程程式設計師Web前端CSS
- 好程式設計師web前端培訓分享怎樣學好css?程式設計師Web前端CSS
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師Web前端培訓分享jQuery面試題梳理程式設計師Web前端jQuery面試題
- 好程式設計師web前端培訓分享HTML DOM節點程式設計師Web前端HTML
- 好程式設計師web前端培訓分享HTML DOM簡介程式設計師Web前端HTML
- 好程式設計師web前端培訓分享如何講清楚Promise?程式設計師Web前端Promise
- 好程式設計師Web前端培訓分享如何講清楚this指向?程式設計師Web前端
- 好程式設計師web前端培訓分享詳解JavaScript學習筆記建構函式程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享Vue面試題1.程式設計師Web前端Vue面試題
- 好程式設計師web前端培訓分享九個JavaScript小技巧程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享JavaScript基礎語法程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓分享FormData 簡單介紹程式設計師Web前端ORM
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- 好程式設計師web前端培訓分享Javascript中原型屬性程式設計師Web前端JavaScript原型
- 好程式設計師web前端培訓分享小白學web常見的問題程式設計師Web前端
- 好程式設計師web前端培訓分享kbone高階-事件系統程式設計師Web前端事件
- 好程式設計師web前端培訓分享HTMLCSS學習筆記BFC程式設計師Web前端HTMLCSS筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記Promise程式設計師Web前端JavaScript筆記Promise
- 好程式設計師web前端培訓分享JS面試題總結一程式設計師Web前端JS面試題
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記cookie程式設計師Web前端JavaScript筆記Cookie
- 好程式設計師web前端培訓分享React學習筆記(一)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(二)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(三)程式設計師Web前端React筆記
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師web前端培訓分享JavaScript學習筆陣列的排序程式設計師Web前端JavaScript陣列排序
- 好程式設計師web前端培訓系列分享css偽元素的實用技巧程式設計師Web前端CSS
- 好程式設計師Python培訓分享簡述fetchone()函式程式設計師Python函式
- 好程式設計師web前端培訓分享HTMLCSS之寬高自適應程式設計師Web前端HTMLCSS