parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。---MDN
划重点:
当第一个参数不是字符串时, 会先转成字符串(toString)再进行转化.
第二个参数是一个介于2和36之间的整数(数学系统的基础). 当不指定第二个参数时, 不同的环境可能会有不同的转化结果, 请务必使用第二个参数.
转出的数字是整数.
说一些parseInt的坑.
parseInt(1/0, 19) // 18 wtf???
// 1/0结果是Infinity, 转化为字符串是"Infinity", 19进制使用"0-9a-i"标识数字.
// 所以, "Infinity"被当做19进制进行转化时, I转化成了18, n不在19进制标识符里边, 所以转化停止.
// 最终的结果就是18.
//类似的还有
parseInt(false, 16) // 250
parseInt(function(){}, 16) // 15
parseInt(0.0000042, 10) // 0
// 0.0000042转成字符串是"0.0000042", 字符串再转成数字, 第一个字符是"0", 第二个字符是".",
// 好, 整数部分转完了
// 结果是0
parseInt(0.00000042, 10) // 4 wtf???
// 0.00000042转成字符串是"4.2e-7", 字符串再转成数字, 第一个字符是"4", 第二个字符是".", 好, 整数部分转完了
// 结果是4
————————————————
版权声明:本文为博主「zhangxuekang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。