關於parseInt函式的一切

2022-07-31 21:51:17 字數 2670 閱讀 2178

parseint()

作用是將引數(通常為字串)強制轉換為整數。

它有兩個引數,第二個可以省略,我們先展示常見的用法

1. 轉換規則:依次將字串中從左到右的數字部分轉為整數,一旦轉換失敗,返回nan。

(1) 引數是字串型別:

var a = parseint(『10』); //

將字串轉成整數型別

console.log(a); //

10var b = parrseint(『10true』); //

將有效數字部分轉為整數,提取開頭數字部分

console.log(b); //

10var c = parseint(『10true20』); //

只將開頭有效部分轉為整數

console.log(c); //

10var d = parseint(『045zoo』); //

開頭部分轉為整數,數字前面的0省略

console.log(d); //

45var f = parseint(『34.5』); //

整數部分,小數點非數字部分,捨去

console.log(f); //

34var 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); //

99var a = parseint(『1001』,2); //

『1001』 符合二進位制規則, 轉為十進位制整數

console.log(a); //

9var a = parseint(『1001』,10); //

『1001』同樣符合十進位制, 轉為十進位制整數

console.log(a); //

1001

var b = parseint(『234』,2); //

『234』不符合二進位制的規則

console.log(b); //

nanvar b = parseint(『abcde』,2); //

『abcde』不符合二進位制的規則

console.log(b); //

nanvar 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 * 1e22, 10); //

非常大的數值變成 4

parseint(0.00000000000434, 10); //

非常小的數值變成 4

在最新的es5規範中,以0開頭的數字,已經不能再被識別為八進位制了。

parseint("011");  //

會當成10進製轉換為 11

parseint("011", 8) //

指定了8進製,結果為 9

總結:

以上測試均來自最新版的chrome瀏覽器,並不能確保所有瀏覽器行為一致。為了保證開發中不出現意外,建議使用parseint方法時,一律帶上第二個引數!

一切關於相容

1 不同瀏覽器的標籤預設的外補丁和內補丁不同 解決 2 塊屬性標籤float後,又有橫行的margin情況下,在ie6顯示margin比設定的大 解決 在float的標籤樣式控制中加入 display inline 將其轉化為行內屬性 3 設定較小高度標籤 一般小於10px 在ie6,ie7,遨遊中...

關於負載均衡的一切

什麼是負載均衡?負載均衡 load balance 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求 資料均勻分攤到多個操作單元上執行,負載均衡的關鍵在於均勻。常見的負載均衡方案有哪些?常見網際網路分布式架構如上,分為 客戶端層 反向 層 站點層 服務層 資料層 可以看到,每乙個下游都有...

iOS 關於View的一切

ios 關於view的一切 1 view view物件是uiview類的例項,用來展示視覺化的內容。檢視物件定義了乙個矩形區域,並且負責該區域內容的繪製 事件的處理及子檢視的布局。每個view物件都對應乙個layer物件,layer物件是calayer的例項,該物件管理著檢視的後台儲存 處理與檢視相...