JavaScript中数据类型应该如何转换
MaHongli 2019-11-01 JavaScript
# 隐式转换(自动转换)
不同数据类型间相互比较、运算
console.log("5" > 4); //true
1对非布尔类型求布尔值
if(666){ //666 被转为了 true console.log(66666); }
1
2
3预期为数字(计算) console.log("5" - 4);
console.log("5" - 4); console.log(5 - "a"); //NaN console.log(5 - ""); //5 "" -> 0 console.log(5 - true); //4 true -> 1 console.log(5 - false); //5 false -> 0 console.log(5 - undefined); //NaN undefined -> NaN console.log(5 - null); //5 null -> 0
1
2
3
4
5
6
7
# 显式转换(强制转换)
parseInt(要转换的值)
parseInt("5")
11.1.1 取整
1.1.2 逐个转换,当字符串中有非数时即停止
1.1.3 首位为非数、undefined、null时,直接NaN
parseFloat()
console.log(parseFloat("5.1")); //5.1 取浮点数(小数) console.log(parseFloat("a5.1")); //NaN 首位非数,直接NaN console.log(parseFloat("5.1a")); //5.1 字符串中有非数,逐个转换,直到非数停止
1
2
3Number()
整体转换,字符串中含有非数,直接 NaN
null 、 “” 转为0
String(需要转换的值)
转为 string 类型
Boolean()
console.log(1 == true); //true console.log(2 == true); //false true -> 1, 2!= 1 console.log(1 < 2 < 3); //true console.log(3 < 2 < 1); //true
1
2
3
4
5