📜  4.2.类型转换¶ - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:11.877000             🧑  作者: Mango

4.2.类型转换 - JavaScript

在 JavaScript 中,变量的类型是动态的,即有可能在程序运行的过程中,变量的类型被改变。这是一种方便的特性,但同时也会造成一些不便,特别是在类型转换方面。

1. 隐式类型转换

当使用一个不同类型的值进行操作时,JavaScript 会自动地将其转换为一种可用的数据类型。

1.1. 字符串与数字相加

当字符串和数字进行加法运算时,JavaScript 会将数字转换为字符串,然后将字符串相连接。例如:

console.log("5" + 2); // 输出 "52"
console.log("5" + true); // 输出 "5true"
1.2. 字符串与布尔值相加

当字符串和布尔值进行加法运算时,JavaScript 会将布尔值转换为数字,然后再将数字转换为字符串。例如:

console.log("5" + false); // 输出 "5false"
console.log("5" + true); // 输出 "5true"
1.3. 数字与布尔值相加

当数字和布尔值进行加法运算时,JavaScript 会将布尔值转换为数字,然后进行加法运算。例如:

console.log(5 + false); // 输出 5
console.log(5 + true); // 输出 6
1.4. 字符串与数字比较

当字符串和数字进行比较时,JavaScript 会将字符串转换为数字,然后进行比较。例如:

console.log("5" > 2); // 输出 true
console.log("5" < 2); // 输出 false
2. 显式类型转换

在 JavaScript 中,我们也可以通过一些函数或操作符来显式地将一个值转换为另一个类型的值。

2.1. String()

可以将一个值转换为字符串类型。例如:

console.log(String(5)); // 输出 "5"
console.log(String(true)); // 输出 "true"
2.2. Number()

可以将一个值转换为数字类型。例如:

console.log(Number("5")); // 输出 5
console.log(Number("5.2")); // 输出 5.2
console.log(Number(true)); // 输出 1
2.3. Boolean()

可以将一个值转换为布尔类型。例如:

console.log(Boolean(0)); // 输出 false
console.log(Boolean("")); // 输出 false
console.log(Boolean(5)); // 输出 true
3. typeof 操作符

typeof 可以用来检测一个值的数据类型。

console.log(typeof "5"); // 输出 "string"
console.log(typeof 5); // 输出 "number"
console.log(typeof true); // 输出 "boolean"
4. instanceof 操作符

instanceof 可以检测一个对象是否属于某个类。例如:

function Person(name) {
  this.name = name;
}

var p = new Person("Tom");

console.log(p instanceof Person); // 输出 true
console.log(p instanceof Object); // 输出 true
总结

类型转换在 JavaScript 中是非常常见的操作。在编写代码时需要注意隐式类型转换带来的问题,并尽可能使用显式类型转换。在实际开发中使用 typeofinstanceof 操作符可以方便地检测一个值的数据类型或对象的类。