parseInt() 的各种陷阱

313 阅读1分钟

定义和用法

parseInt() 函数可解析一个字符串,并返回一个整数。

语法

parseInt(string, radix)
  1. 尽量写好两个参数,减少错误

    如果string的值以“0x”开头,parseInt会按十六进制进行转换;

    如果string的值以“0”开头,parseInt会按八进制进行转换。

var a = parseInt(09);
var b = parseInt(09,10);
console.log(a); // 0
console.log(b); // 9
  1. 对于超过21位的大数值,建议使用Math.floor();

    (注:Math.floor(number) 求一个最接近它的整数。)

var a = parseInt(100000000000000000000); // 1e+20;
var b = parseInt(1000000000000000000000); // 1e+21;
console.log(a); // 100000000000000000000
console.log(b); // 1
  1. 对于小于1e-6的数值,也建议使用Math.floor();

    (注:对于小于1e-6的数值,toString() 会转换为科学计数法);

var a = parseInt(0.000001);
var b = parseInt(0.0000001);
console.log(a); // 0
console.log(b); // 1