使用 Number() 函数进行转换,纯数字可以直接转换为数字
let a = true;
a = Number(a); // 1
typeof a // number
let b = '123'
b = Number(b); // 123
typeof b // number
若字符串里有非数字,则会转化为 NaN。NaN 的意思是 not a number,这是一个非数字
let b = '123aaa';
Number(b) // NaN
parseInt()
优势,即使字符串中混着非数字,也会解析出第一段数字:从左往右解析,遇到非数字就舍弃后边所有,故第一个若为非数字,则返回NaN
let b = '123aaa';
parseInt(b) // 123
let b = 'aaa';
parseInt(b) // NaN
parseFloat()
与 parseInt 用法一致,但是可以解析小数:从左往右解析,遇到非数字就舍弃后边所有,如果遇到两个点,则舍弃第二个点,以及后面内容
let b = '123.5aaa';
parseInt(b) // 123
parseFloat(b) // 123.5
parseInt() 和 parseFloat()注意项
不能解析其他类型:对非 string 使用,会先将其转换为 string,然后再 *** 作,因此会返回 NaN
parseFloat(true) // NaN
parseInt(true) // NaN
有些情况需要指定进制:如 “070” 这种字符串,转换类型时,浏览器可能会当成 8 进制解析,也可能会当成10进制解析,此时需要加入第二个参数指定进制。
parseInt('010', 2) // 2
parseInt('010', 10) // 10
隐式转换
使用运算符减、乘、除的其中一种,在不改变原值的情况下,和 number 类型的值做运算。(注意:加一个 0 不起作用)
若字符串中的是纯数字,则直接返回该数值若字符串中不是纯数字,则返回 NaN若字符串为空,则返回 0转换布尔型,则 true 返回1,false 返回0转换 undefined,则返回NaN
let a = "123";
let b = a - 0;
console.log(typeof b); // number
console.log(a); // 123
let c = a * 1;
console.log(typeof c); // number
console.log(c); // 123
let c = a + 0;
console.log(typeof c); // string
console.log(c); // 1230
let c = a / 1
console.log(typeof c); // number
console.log(c); // 123
在被转换的值前边,加入负号,或者正号
let a = "123";
a = +a;
console.log(typeof a); // number
console.log(a); // 123
//
let a = "123";
a = -(-a);
console.log(typeof a); // number
console.log(a); // 123
参考:
JavaScript之将其他的数据类型转换为Number_极客研究者的博客-CSDN博客
JS中,将其他类型转换为number的四种方法_坠落人间的恶魔的博客-CSDN博客_js转number类型
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)