在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三个方面进行了详细讲解,同时给出了代码示例,希望对大家有所帮助。