具體方法參數就不介紹了 ,網上一大堆。
主要解釋下面的計算方法:
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;
同理;如下
