[‘1‘,‘2‘,‘3‘].map(parseInt)結果講解


一、先說一下map函數的用法:

將數組的每個元素傳遞給指定的函數處理,並返回處理后的數組。如: ['1','2','3'].map(parseInt) 就是將字符串1,2,3作為元素;0,1,2作為下標分別調用 parseInt 函數,即分別求出 parseInt('1',0), parseInt('2',1), parseInt('3',2)的結果。 

二、再來講一下parseInt的用法:

語法:parseInt(string,radix)

概念:以第二個參數為基數來解析第一個參數字符串,通常用來做十進制的向上取整(省略小數)

參數講解:

string:字母(大小寫均可)、數組、特殊字符(不可放在開頭,特殊字符及特殊字符后面的內容不做解析)的任意字符串,如 '2'、'2w'、'2!'

radix:解析字符串的基數

規則:

區間范圍介於2~36之間;

1、 當參數為 0,parseInt() 會根據十進制來解析;

2、 如果忽略該參數,默認的基數規則:

    如果 string 以 "0x" 開頭,parseInt() 會把 string 的其余部分解析為十六進制的整數;parseInt("0xf") //15

    如果 string 以 0 開頭,其后的字符解析為八進制或十六進制的數字;parseInt("08") //8

    如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數;parseInt("88.99f") //88

    只有字符串中的第一個數字會被返回。parseInt("10.33") //返回10;

    開頭和結尾的空格是允許的。parseInt(" 69 10 ") //返回69

    如果字符串的第一個字符不能被轉換為數字,返回 NaN。parseInt("f") //返回NaN 而parseInt("f",16) //返回15 

 

以上概念及用法陳述完成,我們繼續回歸到本題上:

['1','2','3'].map(parseInt)即

parseInt('1',0);radix 為 0,parseInt() 會根據十進制來解析,所以結果為 1;

parseInt('2',1);radix 為 1,超出區間范圍,所以結果為 NaN;

parseInt('3',2);radix 為 2,用2進制來解析,應以 0 和 1 開頭,所以結果為 NaN。 

 

parseInt的其他案例:

parseInt('101.55',10); //以十進制解析,運算過程:向上取整數(不做四舍五入,省略小數),結果為 101。

parseInt('101',2); //以二進制解析,運算過程:1*2的2次方+0*2的1次方+1*2的0次方=4+0+1=5,結果為 5。

parseInt('101',8); //以八進制解析,運算過程:1*8的2次方+0*8的1次方+1*8的0次方=64+0+1=65,結果為 65。

parseInt('101',16); //以十六進制解析,運算過程:1*16的2次方+0*16的1次方+1*16的0次方=256+0+1=257,結果為 257。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM