JavaScript 支持使用以下函数进行强制类型转换。
在下面代码中,分别调用上述 3 个函数,把参数值强制转换为新的类型值。
console.log(String(true)); //返回字符串"true"
console.log(String(0)); //返回字符串"0"
console.log(Number("1")); //返回数值1
console.log(Number(true)); //返回数值1
console.log(Number("a")); //返回NaN
console.log(Boolean(1)); //返回true
console.log(Boolean("")); //返回false
console.log(Number(true)); //返回1
console.log(Number(false)); //返回0
console.log(parseInt(true)); //返回NaN
console.log(parseInt(false)); //返回NaN
console.log(Number("123abc")); //返回NaN
console.log(Number("123abc")); //返回数值123
console.log(String(null));
console.log(String(undefined));
console.log(null.toString());
console.log(undefined.toString());
在 JavaScript 中,使用强制类型转换非常有用,但是应该根据具体应用场景使用,以确保正确转换值。
JavaScript 能够根据具体运算环境自动转换参与运算的值得类型。下面简单介绍常用值在不同运算环境中被自动转换的值列表。
值(value) | 字符串操作环境 | 数字运算环境 | 逻辑运算环境 | 对象操作环境 |
---|---|---|---|---|
undefined | "undefined" | NaN | false | Error |
null | "null" | 0 | false | Error |
非空字符串 | 不转换 | 字符串对应的数字值NaN | true | String |
空字符串 | 不转换 | 0 | false | String |
0 | "0" | 不转换 | false | Number |
NaN | "NaN" | 不转换 | false | Number |
Infinity | "Infinity" | 不转换 | true | Number |
Number.POSITIVE_INFINITY | "Infinity" | 不转换 | true | Number |
Number.NEGATIVE_INFINITY | "-Infinity" | 不转换 | true | Number |
-Infinity | "-Infinity" | 不转换 | true | Number |
Number.MAX_VALUE | "1.7976931348623157e+308" | 不转换 | true | Number |
Number.MIN_VALUE | "5e-324" | 不转换 | true | Number |
其他所有数字 | "数字的字符串值" | 不转换 | true | Number |
true | "true" | 1 | 不转换 | Boolean |
false | "false" | 0 | 不转换 | Boolean |
对象 | toString() | valueOf() 或 toString() 或 NaN | true | 不转换 |