您的位置:

JavaScript中字串转数值型

在JavaScript中,字串类型的数据是很常见的。在处理数据时,有时候需要将字串类型转换成数值型,这时候就需要用到字串转数值型的方法。本文将从几个方面详细介绍JavaScript中字串转数值型的相关知识。

一、jsstring转number的介绍

在JavaScript中,可以使用parseInt()和parseFloat()方法将字串转换成数值型。

1、parseInt()

parseInt()方法将字串转成整型。它接受两个参数:要被转换的字串和转换使用的默认进制。默认进制是10,如果字串以0x开头,将被解析为十六进制数。

    var str1 = "123";
    var str2 = "0x1a";
    var num1 = parseInt(str1);
    var num2 = parseInt(str2);
    console.log(num1); //输出:123
    console.log(num2); //输出:26

2、parseFloat()

parseFloat()方法将字串转换成浮点型。转换时遇到不能解析为浮点数的字符会停止转换。

    var str1 = "3.14";
    var str2 = "314e-2";
    var num1 = parseFloat(str1);
    var num2 = parseFloat(str2);
    console.log(num1); //输出:3.14
    console.log(num2); //输出:3.14

二、jsstring转date

在JavaScript中,可以使用Date对象将字串转换成日期型。

1、将yyyy-mm-dd格式的字串转换成日期型

使用Date.parse()方法可以将格式为yyyy-mm-dd的字串转换为日期型。

    var str = "2022-02-14";
    var date = new Date(Date.parse(str));
    console.log(date); //输出:Mon Feb 14 2022 00:00:00 GMT+0800 (中国标准时间)

2、将yyyymmdd格式的字串转换成日期型

使用substr()方法将yyyymmdd格式的字串拆分成年、月、日三个部分。使用Date对象中的setFullYear()、setMonth()、setDate()方法依次将年、月、日分别设置到Date对象中。

    var str = "20220214";
    var year = str.substr(0,4);
    var month = str.substr(4,2)-1;
    var day = str.substr(6,2);
    var date = new Date();
    date.setFullYear(year);
    date.setMonth(month);
    date.setDate(day);
    console.log(date); //输出:Mon Feb 14 2022 00:00:00 GMT+0800 (中国标准时间)

三、js string转int

在JavaScript中,可以使用parseInt()方法将字串转换成整型。

1、将16进制数字格式的字串转换成整型

使用parseInt()方法的第二个参数指定进制,可以将16进制数字格式的字串转换成整型。

    var str = "1a";
    var val = parseInt(str,16);
    console.log(val); //输出:26

2、将8进制数字格式的字串转换成整型

使用parseInt()方法的第二个参数指定进制为8,可以将8进制数字格式的字串转换成整型。

    var str = "16";
    var val = parseInt(str,8);
    console.log(val); //输出:14

3、将2进制数字格式的字串转换成整型

使用parseInt()方法的第二个参数指定进制为2,可以将2进制数字格式的字串转换成整型。

    var str = "110";
    var val = parseInt(str,2);
    console.log(val); //输出:6

四、jsstring转number的注意事项

在使用JavaScript中字串转数值型的方法时,需要注意以下几点:

1、parseFloat()方法在解析数字时不会检测字串是否合法

如果解析到不能转换映射成有限数字的字符时,parseFloat()会返回NaN。

    var num = parseFloat("123.45hello");
    console.log(num); //输出:123.45

2、parseInt()方法在解析数字时检测字串是否合法

如果解析到不能转换映射成整数的字符时,parseInt()会返回NaN。

    var num = parseInt("123.45");
    console.log(num); //输出:123

3、parseInt()方法在解析字串时要注意进制问题

如果不指定进制,字串被解析成10进制数。如果字串以0x开头,将被解析为十六进制数。

    var num1 = parseInt("010"); //输出:10
    var num2 = parseInt("0x10"); //输出:16

4、Date.parse()方法只能处理格式为yyyy/mm/dd和mm/dd/yyyy的字串

如果字串不符合格式要求,Date.parse()会返回NaN。

    var d1 = Date.parse("2022-02-14"); //输出:NaN
    var d2 = Date.parse("2022/02/14"); //输出:1644777600000

5、Date对象中的月份是0到11,所以需要将月份减一

在使用Date对象设置月份时,需要将月份减一。这是因为JavaScript中Date对象中的月份从0开始。

    var date = new Date();
    date.setMonth(1) //设置月份为2月
    console.log(date); //输出:Wed Feb 02 2022 16:39:16 GMT+0800 (中国标准时间)

总结

JavaScript中字串转数值型是开发中经常用到的一种方法。在处理数据时,需要将字串转换成数值型来进行计算。本文从jsstring转number,jsstring转date,js string转int三个方面进行了详细讲解,同时给出了代码示例,希望对大家有所帮助。