parseInt()詳解


具體方法參數就不介紹了 ,網上一大堆。

主要解釋下面的計算方法:

parseInt("10");			//返回 10
parseInt("19",10);		//返回 19 (10+9)
parseInt("11",2);		//返回 3 (2+1)
parseInt("17",8);		//返回 15 (8+7)
parseInt("1f",16);		//返回 31 (16+15)
parseInt("010");		//未定:返回 10 或 8

parseInt(string,radix); 其中的基數 radix.(不代表着進制) 很多人都誤以為它代表着要轉換的進制數。string要轉換的字符串,string 以 "0x" 開頭,parseInt() 會把 string 的其余部分解析為十六進制的整數。
如果 string 以 0 開頭,那么會把其后的字符解析為八進制或十六進制的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析為十進制的整數。

知道上面的規則后:
parseInt("10");	  默認radix為10,string為數字開頭,則解析為10進制的整數,則parseInt("10")=1*10^1+0*10^0=10;不變,其中10為基數
parseInt('11',2)  radix 為2, string為數字開頭,則 parseInt('11',2) =1*2^1+1*2^0=3;  其中2為基數

同理:parseInt('1f',16) string為1f,解析為16進制。radix為16,則=1*16^1+15*16^0=31;其中16為基數,f=15;

備注:parseInt("17",6)=1,parseInt('17',9)=16;當解析17時,1屬於6進制范圍,7不屬於6進制范圍,當string的數字小於radix時(7<6),它會只解析到它的上一位
parseInt('17',6) = parseInt('1',6) = 1;

例題: var a=["1", "2", "3", "4","5",6,7,8,9,10,11,12,13,14,15]; a.map(parseInt); 
答案是: [1,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,9,11,13,15,17,19];
parseInt('1',0)=parseInt('1',10)=1;
parseInt('2',1) 因為radix最小為2,最大為36,所以NAN
parseInt('4',3) 因為3進制范圍為(0-2) 4不在3進制范圍,所以Nan
同理;到
parseInt(’10‘,9)=1*9^1+0*9^0=9;
parseInt('11',10)=11;
同理;如下





免責聲明!

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



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