📅  最后修改于: 2023-12-03 15:01:49.253000             🧑  作者: Mango
JavaScript是一种弱类型语言,这意味着它不需要在声明变量时指定变量的数据类型。这也意味着在运行时,JavaScript会自动将变量转换为相应的数据类型。这种自动转换就称为类型转换。
JavaScript类型转换分为两类:强制类型转换和隐式类型转换。
强制类型转换发生在程序中明确地更改变量的数据类型时。JavaScript提供了几个内置函数来实现强制类型转换。
Number()函数将其他类型的值转换为数字类型。
Number("3.14"); // 3.14
Number(" "); // 0
Number(null); // 0
Number(undefined); // NaN
Number(true); // 1
Number(false); // 0
String()函数将其他类型的值转换为字符串类型。
String(3.14); // "3.14"
String(null); // "null"
String(undefined); // "undefined"
String(true); // "true"
String(false); // "false"
Boolean()函数将其他类型的值转换为布尔类型。
Boolean(""); // false
Boolean(" "); // true
Boolean(null); // false
Boolean(undefined); // false
Boolean(0); // false
Boolean(1); // true
Boolean(NaN); // false
Boolean([]); // true
Boolean({}); // true
JavaScript隐式类型转换是在运行时自动发生的,并且由JavaScript解释器自动完成。通常,隐式类型转换发生在操作符和函数调用中。
"1" + 2; // "12",字符串拼接
"2" * "3"; // 6,数字操作
true + 3; // 4,true被转换为1
false + 3; // 3,false被转换为0
true + "hello"; // "truehello",true被转换为字符串"true"
false + "hello"; // "falsehello",false被转换为字符串"false"
[1, 2, 3] + "hello"; // "1,2,3hello",数组被转换为字符串"1,2,3"
if ("hello") {
console.log("true"); // "true",字符串"hello"被隐式转换为true
}
if (0) {
console.log("true");
} else {
console.log("false"); // "false",数字0被隐式转换为false
}
在编写JavaScript代码时,了解类型转换的运作方式是非常重要的,这可以帮助您编写更加可读和正确的代码。