美文网首页JavaScript < ES5、ES6、ES7、… >
JavaScript中数字字符串转数字

JavaScript中数字字符串转数字

作者: Kevin丶CK | 来源:发表于2019-04-17 17:03 被阅读0次

基本可以通过三种方式:

1、转换函数

js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

 console.log(typeof parseInt('1231'));//number
 console.log( parseInt('aaa'));//NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的。

 console.log(parseInt("10", 2)); //returns 2
 console.log(parseInt("10", 8)); //returns 8
 console.log(parseInt("10", 10)); //returns 10

parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

    console.log(typeof parseFloat('1231'));//number
    console.log(parseFloat('aaa'));//NaN
2、强制类型转换

还可使用强制类型转换处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。

        console.log(typeof Number('1231'));//number
        console.log(Number('aaa'));//NaN
        console.log(Number(false)); //0
        console.log(Number(true)); //1
        console.log(Number(undefined)); //NaN
        console.log(Number(null)); //0
3、利用js变量弱类型转换

js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

        let str = '123';
        let strToNum = +str;
        console.log(typeof strToNum);//number
        console.log(typeof +str);//number
        console.log(typeof -str);//number

相关文章

网友评论

    本文标题:JavaScript中数字字符串转数字

    本文链接:https://www.haomeiwen.com/subject/fjinwqtx.html