在JavaScript中,类型转换是一个常见的操作,用于在不同数据类型之间进行转换。这里介绍一些基本的转换方法:
### 显式转换
1. **转换为字符串**
- 使用`String()`函数
let num = 123;
let str = String(num); // "123"
- 使用模板字符串
let num = 123;
let str = `${num}`; // "123"
- 使用`toString()`方法(注意:null和undefined没有这个方法)
let num = 123;
let str = num.toString(); // "123"
2. **转换为数字**
- 使用`Number()`函数
let str = "123";
let num = Number(str); // 123
- 使用一元加号
let str = "123";
let num = +str; // 123
- 使用`parseInt()`或`parseFloat()`函数(用于字符串转整数或浮点数)
let str = "123.456";
let numInt = parseInt(str); // 123
let numFloat = parseFloat(str); // 123.456
3. **转换为布尔值**
- 使用逻辑非操作符两次(`!!`)
let zero = 0;
let truth = !!zero; // false
let str = "Hello";
let truthStr = !!str; // true
### 隐式转换
JavaScript在运算过程中,如果操作数类型不匹配,会自动进行类型转换,这称为隐式转换。例如:
let str = "123";
let num = 456;
let result = str + num; // "123456",这里+操作符导致了str被隐式转换为字符串
let result2 = str * num; // 560688,这里*操作符导致了str被隐式转换为数字
### 注意
- 隐式转换可能会导致意外的结果,特别是在进行复杂运算时,因此建议尽可能使用显式转换来明确意图。
- 某些值在转换为数字时会有特殊的行为,比如空字符串`""`会转换为`0`,`null`和`undefined`转换为`NaN`(Not-a-Number),布尔值`true`和`false`分别转换为`1`和`0`。