HLJ 发布于
2025-06-10 17:34:05
0阅读

JavaScript 类型转换基础

JavaScript 类型转换基础

JavaScript 是一种弱类型语言,这意味着变量可以自动或显式地从一种类型转换为另一种类型。理解类型转换是掌握 JavaScript 的关键之一。

隐式类型转换(自动转换)

JavaScript 在需要时会自动进行类型转换:

// 数字与字符串相加
let result = '3' + 2;    // "32" (字符串连接)
let result2 = '3' + true; // "3true"

// 数字与字符串相减
let result3 = '4' - '2';  // 2 (数字相减)
let result4 = '4' - 2;    // 2
let result5 = '4' * '2';  // 8
let result6 = '4' / '2';  // 2

// 布尔值参与运算
let result7 = '5' - true; // 4 (true转换为1)
let result8 = '5' - false; // 5 (false转换为0)

显式类型转换

转换为字符串

let num = 123;
let str = String(num);    // "123"
let str2 = num.toString(); // "123" (除了null和undefined)

// 使用加号运算符
let str3 = 5 + "";        // "5"

转换为数字

let str = "123";
let num = Number(str);    // 123

// parseInt 和 parseFloat
let num2 = parseInt("123px"); // 123
let num3 = parseFloat("12.3"); // 12.3

// 一元加运算符
let num4 = +"123";        // 123

// 其他转换
let bool = true;
let num5 = Number(bool);  // 1

转换为布尔值

let val1 = Boolean("hello"); // true
let val2 = Boolean("");      // false
let val3 = Boolean(0);       // false
let val4 = Boolean(1);       // true
let val5 = Boolean(null);    // false
let val6 = Boolean(undefined); // false
let val7 = Boolean({});      // true

// 使用!!运算符
let val8 = !!"hello";       // true

特殊转换情况

// null 和 undefined
Number(null);      // 0
Number(undefined); // NaN

// 对象转换
let obj = {toString() { return "123" }};
Number(obj);       // 123

// 数组转换
Number([1]);       // 1
Number([1,2]);     // NaN
String([1,2,3]);   // "1,2,3"

== 与 === 的区别

// == 会进行类型转换
'5' == 5;          // true
null == undefined; // true

// === 严格相等,不进行类型转换
'5' === 5;         // false
null === undefined; // false

理解 JavaScript 的类型转换规则对于避免 bug 和编写健壮的代码非常重要。建议在大多数情况下使用显式转换和严格相等运算符(===)来提高代码的清晰度和可靠性。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-10/764.html
最后生成于 2025-06-13 20:51:57
此内容有帮助 ?
0