JavaScript 是一个神奇的语言,字符串转数字有 5 种方法,各有各的坑法!下面本篇文章就来介绍一下JavaScript字符串转数字的5种方法及其陷阱,希望对大家有所帮助。
String 转换为 Number 有很多种方式,我可以想到的有 5 种!parseInt(num); // 默认方式 (没有基数)
parseInt(num, 10); // 传入基数 (十位数)
parseFloat(num); // 浮点数
Number(num); // Number 构造器
~~num; //按位非
num / 1; // 除一个数
num * 1; // 乘一个数
num -
0 + // 减去0
num; // 一元运算符 "+"
选择哪一种呢?什么时候选择它?为什么选择这种它?我们逐一进行分析,并解析每种方式的常见陷阱。
parseInt
根据 JsPerf.com 的基准测试,大多数浏览器对 parseInt 的响应最佳。虽然它是最快的方式,但使用 preseInt 会碰到一些常见陷阱:parseInt("08"); // returns 0 部分老浏览器.
parseInt("44.jpg"); // returns 44
parseInt: 没有传入基数时