对象在数值运算环境中,是如何转换成数值的。

本文详细解析了JavaScript中当对象与布尔值进行相加操作时,系统如何进行一系列的类型转换,包括调用valueOf()方法获取对象自身值,通过toString()方法将对象转换为字符串,进而使用parseInt()或parseFloat()将字符串转换为数值,并最终通过Number()方法将布尔值转换为数字的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如有一个布尔对象。

var a=new Boolean(true);

var b=a+10       

这里的结果就会变成11,而式子是一个对象和一个布尔对象进行相加,中间进行了很多潜在的转换,主要过程如下:

(1)

首先系统会调用对象默认的valueOf(  )方法,将返回对象自身的值。

a.valueOf(  )之后,就返回true,typeof一下的话,这个是个Boolean类型,而不再是Object类型。

(2)

再调用toString()方法,将对象转换成字符串类型。虽然值还是true,但第1步里的是boolean,这里的是string。

(3)

然后调 用parseInt()或parseFloat()将字符串转换成数值。但这里由于是true,所以两个都将返回NaN,于是再尝试用Number()的方式进行强制转换,最后才得到true对应的数值1。这个时候的变量类型变成number。


parseInt()和parseFloat()均只能将字符串转换为数值,而Number(  )适用于任何类型。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值