parseInt(string, radix):用於解析一個字符串並返回指定基數的十進制整數或者NaN
string參數為被解析的值,如果該值不是一個字符串,則會隱式的使用toString()方法轉化為字符串,字符串首尾的空格會被忽略,如果該值不能轉化為數字或者第一個非空字符不能轉化為數字則返回NaN
radix可選參數,值為2~36之間的整數,解析的基數,例如2為二進制數,如果省略該參數或者該值為0,則會以十進制解析,如果該值小於2或者大於36,則會返回NaN。如果省略該參數,string以0x或0X開頭,以16進制解析,string以0開頭,以八進制或十六進制解析,以1~9開頭,以10進制解析
parseInt解析到的字符不是指定radix中的數字時,它會忽略該字符及其之后的字符,並返回已解析的十進制
eg:
parseInt(3.3) => 3; parseInt(3, 0) => 3;
parseInt(3, 1) => NaN => 因為radix不能小於2
parseInt('31', 2) => NaN => 因為在二進制中大於1的數是非法數
parseInt('0xF', 16) => 15 => 十六進制中A=10 ~ F=15
parseInt('F', 16) => 15; parseInt('-F', 16) => -15
parseInt('0e0', 16) => 14*16 = 224
parseInt('123', 5) => 38 => 1*5^2+2*5^1+3*5^1
parseInt(021, 8) => 15 => 021.toString() = 17;相當於parseInt('17', 8)=15
parseInt('abc') => NaN
parseInt(4.7*1e18, 10) => 4
parseInt(0.0000000000444, 10) => 4
['1', '2', '3'].map(parseInt) => [1, NaN, NaN]
map方法的callback(currentVal, index, array)相當於
[parseInt('1', 0), parseInt('2', 1), parseInt('3', 2)] => [1, NaN, NaN]
