类型转换是将一个数据类型转换为另一个数据类型的过程。类型转换可以是隐式的(由JavaScript引擎自动完成)或显式的(通过编码进行手动转换)。
在一些操作中,JavaScript会自动进行类型转换,以便进行运算或比较。
示例:
let num = 5 + "5";
console.log(num); // 输出 "55",数字和字符串相加,数字被转换为字符串
String()
函数: 将其他类型转换为字符串。
示例:
let num = 123;
let str1 = String(num); // String() 函数,可处理 `null` 或 `undefined`
let str2 = num.toString(); // toString() 方法,无法处理 `null` 或 `undefined`
let str3 = num + ""; // 通过与空字符串相加,得到隐式类型转换的字符串
console.log(str1); // 输出 "123"
console.log(str2); // 输出 "123"
console.log(str3); // 输出 "123"
Number()
函数: 将其他类型转换为数字。
示例:
let str1 = "123";
let str2 = "";
let str3 = "aaa";
let num1 = Number(str1);
let num2 = Number(str2);
let num3 = Number(str3);
let num4 = +str1;
console.log(num1); // 输出 123
console.log(num2); // 输出 0
console.log(num3); // 输出 NaN
console.log(num3); // 输出 123,如果使用-号,输出-123
注意:如果字符串不能被解析为有效的数字,结果将是 NaN(Not a Number)。
parseInt()
和 parseFloat()
函数: 将 字符串 转换为整数或浮点数。
示例:
let str = "42";
let num = parseInt(str);
console.log(num); // 输出 42
let str = "3.14";
let num = parseFloat(str);
console.log(num); // 输出 3.14
Boolean()
函数: 将其他类型转换为布尔值。
示例:
let value = "Hello";
let bool1 = Boolean(value);
let bool2 = !value;
console.log(bool1); // 输出 true,非空字符串转换为 true
console.log(bool2); // 输出 true,使用逻辑非对非布尔值隐式转换(!值为false,再使用!!取正)
注意:0、NaN、null、undefined、空字符串等(空的、没有的、错误的)会转换为 false,其它值、对象会转换为 true。