JavaScript强制类型转换和自动类型转换

mac2026-01-04  7

JavaScript强制类型转换和自动类型转换

强制类型转换

JavaScript 支持使用以下函数进行强制类型转换。

Boolean(value):把参数值转换为布尔型值。Number(value):把参数值转换为数字。String(value):把参数值转换为字符串。

在下面代码中,分别调用上述 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

注意: 1、true 被强制转换为数值 1,false 被强制转换为数值 0,而使用 parseInt() 方法转换时,都返回 NaN。

console.log(Number(true)); //返回1 console.log(Number(false)); //返回0 console.log(parseInt(true)); //返回NaN console.log(parseInt(false)); //返回NaN

2、当值包括至少一个字符的字符串、非 0 数字或对象时,Boolean() 强制转换后都会返回 true。 3、如果值是空字符串、数字 0、undefined 或 null,Boolean() 强制转换后都会返回true。 4、Number() 强制转换与 parseInt() 和 parseFloat() 方法的处理方式不同,Number() 转换的是整体,而不是局部值。

console.log(Number("123abc")); //返回NaN console.log(Number("123abc")); //返回数值123

5、String() 能够把 null 和 undefined 强制转换为对应字符串,而调用 toString() 方法将引发错误。

console.log(String(null)); console.log(String(undefined)); console.log(null.toString()); console.log(undefined.toString());

在 JavaScript 中,使用强制类型转换非常有用,但是应该根据具体应用场景使用,以确保正确转换值。

自动类型转换

JavaScript 能够根据具体运算环境自动转换参与运算的值得类型。下面简单介绍常用值在不同运算环境中被自动转换的值列表。

数据类型自动转换列表

值(value)字符串操作环境数字运算环境逻辑运算环境对象操作环境undefined“undefined”NaNfalseErrornull“null”0falseError非空字符串不转换字符串对应的数字值NaNtrueString空字符串不转换0falseString0“0”不转换falseNumberNaN“NaN”不转换falseNumberInfinity“Infinity”不转换trueNumberNumber.POSITIVE_INFINITY“Infinity”不转换trueNumberNumber.NEGATIVE_INFINITY“-Infinity”不转换trueNumber-Infinity“-Infinity”不转换trueNumberNumber.MAX_VALUE“1.7976931348623157e+308”不转换trueNumberNumber.MIN_VALUE“5e-324”不转换trueNumber其他所有数字“数字的字符串值”不转换trueNumbertrue“true”1不转换Booleanfalse“false”0不转换Boolean对象toString()valueOf() 或 toString() 或 NaNtrue不转换
最新回复(0)