parseInt
的第二个参数
一、使用方法
-
进行取整操作,第二个数表示目前数字的进制(2-36)
-
转换结束后默认按十进制进行输出
-
如
parseInt('123', 2)
得出的结果是83
二、开头问题
-
0x / 0X开头会按照16进制转换为整数
-
0 / 0o / 0O开头的字符串(数字的话会八进制进行解析),ES3会按照八进制转换,ES5中默认按十进制
-
案例
-
parseInt(021, 8) // 15
parseInt('021', 8) // 17
-
-
如果按照其它字符开头的字符串,都按照十进制进行转换
-
为了结果统一,所以尽量加上第二个参数
-
如果按照进制执行的话,不是该进制的数会返回NaN
三、案例
-
以下所有都返回15
四、与Math.floor()相比与一些特性
-
Math.floor()可以识别字符串形式的科学计数,而parseInt不能识别
-
Math.floor()不能识别字符串形式的非十进制数,而parseInt可以识别
-
Math.floor()可以识别任意大小的科学计数,而parseInt()最多只能识别到1e20,超过这个大小只识别开头的数字,负数一样
-
parseInt(6.7 * 1e22, 10) // 6
Math.floor(6.7 * 1e22) // 6.7e+22
-