JavaScript 中的强制转换&&自动转换

强制转换主要指使用Number()String()Boolean()三个函数,手动将各种类型的值,分别转换成数字、字符串或者布尔值。

一、Number()

使用Number函数,可以将任意类型的值转化成数值。参数是原始类型值,正常转化成数值;参数是单个数值的数组,也可转化成数值。

Number方法的参数是对象时,将返回NaN,其转换规则为:

第一步,调用对象自身的valueOf方法。如果返回原始类型的值,则直接对该值使用Number函数,不再进行后续步骤。

第二步,如果valueOf方法返回的还是对象,则改为调用对象自身的toString方法。如果toString方法返回原始类型的值,则对该值使用Number函数,不再进行后续步骤。

第三步,如果toString方法返回的是对象,就报错。

二、String()

使用String函数,可以将任意类型的值转化成字符串。参数是原始类型值

数值:转为相应的字符串;字符串:转换后还是原来的值;布尔值:true转为字符串"true"false转为字符串"false";undefined:转为字符串"undefined";null:转为字符串"null"

当String方法的参数是对象时,返回一个类型字符串,如果是数组,返回该数组的字符串形式,其转换规则为:

  1. 先调用对象自身的toString方法。如果返回原始类型的值,则对该值使用String函数,不再进行以下步骤。

  2. 如果toString方法返回的是对象,再调用原对象的valueOf方法。如果valueOf方法返回原始类型的值,则对该值使用String函数,不再进行以下步骤。

  3. 如果valueOf方法返回的是对象,就报错。

三、Boolean()

Boolean函数可以将任意类型的值转为布尔值。

除了undefined、null、-0+0、NaN、''(空字符串)这五个值的转换结果为false,其他的值全部为true

 

遇到以下三种情况时,JavaScript 会自动转换数据类型,即转换是自动完成的,用户不可见。自动转换的规则是预期什么类型的值,就调用该类型的转换函数。

1、不同类型的数据互相运算。

2、对非布尔值类型的数据求布尔值

3、对非数值类型的值使用一元运算符(即+-

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值