1. 隐式类型转换
技术: 自动将值从一种类型转换为另一种类型,通常发生在运算或比较时。
应用场景: 运算符自动处理不同类型的值。
示例代码:
const num = 5;
const str = "10";
console.log(num + str); // Output: "510" (num 被转换为字符串,与 str 拼接)
console.log(num - str); // Output: -5 (str 被转换为数字,与 num 进行减法)
2. 显式类型转换
技术: 使用 JavaScript 提供的方法手动将值转换为所需的类型。
应用场景: 需要明确控制转换逻辑时,避免隐式转换带来的问题。
示例代码:
-
字符串转换为数字:
const str = "123"; const num = Number(str); console.log(num); // Output: 123 (字符串 "123" 被转换为数字 123)
-
数字转换为字符串:
const num = 123; const str = num.toString(); console.log(str); // Output: "123" (数字 123 被转换为字符串 "123")
-
布尔值转换:
const truthyValue = "hello"; const falsyValue = 0; console.log(Boolean(truthyValue)); // Output: true (非空字符串转为 true) console.log(Boolean(falsyValue)); // Output: false (0 转为 false)
3. 使用 parseInt
和 parseFloat
技术: 将字符串转换为整数或浮点数。
应用场景: 处理用户输入或文本数据时需要将字符串转换为数字。
示例代码:
const intStr = "42";
const floatStr = "3.14";
const intNum = parseInt(intStr, 10);
const floatNum = parseFloat(floatStr);
console.log(intNum); // Output: 42 (字符串 "42" 被转换为整数 42)
console.log(floatNum); // Output: 3.14 (字符串 "3.14" 被转换为浮点数 3.14)
4. 使用 String()
和 Number()
技术: 将其他类型的值转换为字符串或数字。
应用场景: 在进行字符串拼接或需要数字计算时转换数据类型。
示例代码:
const boolValue = true;
const nullValue = null;
const strFromBool = String(boolValue);
const numFromNull = Number(nullValue);
console.log(strFromBool); // Output: "true" (布尔值 true 转换为字符串 "true")
console.log(numFromNull); // Output: 0 (null 转换为数字 0)
总结
- 隐式类型转换: 自动进行,可能导致意外结果。
- 显式类型转换: 使用
Number()
,String()
,Boolean()
,parseInt()
,parseFloat()
等方法手动控制转换。 - 应用场景: 确保在运算、比较或处理数据时进行正确的类型转换。