JS 字符串转换数字方法主要有三种: 转换函数, 强制类型转换, 利用 JS 变量弱类型转换.
1. 转换函数:
JS 提供了 parseInt()和 parseFloat()两个转换函数. 前者把值转换成整数, 后者把值转换成浮点数. 只有对 String 类型调用这些方法, 这两个函数才能正确运行; 对其他类型返回的都是 NaN(Not a Number).
一些示例如下:
- parseInt("1234blue"); //returns 1234
- parseInt("0xA"); //returns 10
- parseInt("22.5"); //returns 22
- parseInt("blue"); //returns NaN
parseInt()方法还有基模式, 可以把二进制, 八进制, 十六进制或其他任何进制的字符串转换成整数. 基是由 parseInt()方法的第二个参数指定的, 示例如下:
- parseInt("AF", 16); //returns 175
- parseInt("10", 2); //returns 2
- parseInt("10", 8); //returns 8
- parseInt("10", 10); //returns 10
如果十进制数包含前导 0, 那么最好采用基数 10, 这样才不会意外地得到八进制的值. 例如:
- parseInt("010"); //returns 8
- parseInt("010", 8); //returns 8
- parseInt("010", 10); //returns 10
parseFloat()方法与 parseInt()方法的处理方式相似. 使用 parseFloat()方法的另一不同之处在于, 字符串必须以十进制形式表示浮点数, parseFloat()没有基模式.
下面是使用 parseFloat()方法的示例:
- parseFloat("1234blue"); //returns 1234.0
- parseFloat("0xA"); //returns NaN
- parseFloat("22.5"); //returns 22.5
- parseFloat("22.34.5"); //returns 22.34
- parseFloat("0908"); //returns 908
- parseFloat("blue"); //returns NaN
自己是一个五年的前端工程师, 希望本文对你有帮助!
这里推荐一下我的前端学习交流扣 qun:731771211 , 里面都是学习前端的, 如果你想制作酷炫的网页, 想学习编程. 自己整理了一份 2019 最全面前端学习资料, 从最基础的 html+CSS+JS[炫酷特效, 游戏, 插件封装, 设计模式] 到移动端 HTML5 的项目实战的学习资料都有整理, 送给每一位前端小伙伴, 每天分享技术
点击: 加入
2. 强制类型转换
还可使用强制类型转换 (type casting) 处理转换值的类型. 使用强制类型转换可以访问特定的值, 即使它是另一种类型的. ECMAScript 中可用的 3 种强制类型转换如下:
Boolean(value)-- 把给定的值转换成 Boolean 型;
Number(value)-- 把给定的值转换成数字(可以是整数或浮点数);
String(value)-- 把给定的值转换成字符串.
用这三个函数之一转换值, 将创建一个新值, 存放由原始值直接转换成的值. 这会造成意想不到的后果. 当要转换的值是至少有一个字符的字符串, 非 0 数字或对象 (下一节将讨论这一点) 时, Boolean()函数将返回 true. 如果该值是空字符串, 数字 0,undefined 或 null, 它将返回 false.
可以用下面的代码段测试 Boolean 型的强制类型转换.
- Boolean(""); //false - empty string
- Boolean("hi"); //true - non-empty string
- Boolean(100); //true - non-zero number
- Boolean(null); //false - null
- Boolean(0); //false - zero
- Boolean(new Object()); //true - object
Number()的强制类型转换与 parseInt()和 parseFloat()方法的处理方式相似, 只是它转换的是整个值, 而不是部分值. 示例如下:
用 法 结 果
- Number(false) 0
- Number(true) 1
- Number(undefined) NaN
- Number(null) 0
- Number( "5.5") 5.5
- Number( "56") 56
- Number( "5.6.7") NaN
- Number(new Object()) NaN
- Number(100) 100
最后一种强制类型转换方法 String()是最简单的, 示例如下:
- var s1 = String(null); //"null"
- var oNull = null;
- var s2 = oNull.toString(); //won't work, causes an error
3. 利用 JS 变量弱类型转换
举个小例子, 一看, 就会明白了.
- <script>
- var str = '012.345';
- var x = str - 0;
- x = x * 1;
- </script>
上例利用了 JS 的弱类型的特点, 只进行了算术运算, 实现了字符串到数字的类型转换, 不过这个方法还是不推荐的
来源: http://www.jianshu.com/p/af48d487b492