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

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”NaNfalseError
null“null”0falseError
非空字符串不转换字符串对应的数字值NaNtrueString
空字符串不转换0falseString
0“0”不转换falseNumber
NaN“NaN”不转换falseNumber
Infinity“Infinity”不转换trueNumber
Number.POSITIVE_INFINITY“Infinity”不转换trueNumber
Number.NEGATIVE_INFINITY“-Infinity”不转换trueNumber
-Infinity“-Infinity”不转换trueNumber
Number.MAX_VALUE“1.7976931348623157e+308”不转换trueNumber
Number.MIN_VALUE“5e-324”不转换trueNumber
其他所有数字“数字的字符串值”不转换trueNumber
true“true”1不转换Boolean
false“false”0不转换Boolean
对象toString()valueOf() 或 toString() 或 NaNtrue不转换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gxhlh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值