js 类型转换

 

Boolean 中,加不加new,返回的结果是不相同的
if(Boolean(false)) {console.log(’true’)}是不能输出的
if(new Boolean(false)) {console.log(’true’)}是可以输出的
if(Boolean(null)) {console.log(’null’)} 不能输出
if(new Boole(null)){console.log(’null')}输出null


1 Number的转换
Number(123) //123
Number(123sadfa) // NaN ,
Number(‘’) // 0
Number(null) // 0
Number(undefined) // NaN
Number(flase) // 0
对象转换成Number
先获取对象的ValueOf()的值,如果是原始值则直接的用Number(),如果是复合型则用toString,toString返回的原始值则用Number(),返回的是复合型的时候报错

2 Sting 
123, null, false ,undefined都是在外层加上引号
对象转换成字符串的时候,先调用toSting, 如果是原始值就用String(),如果返回的是复合值,就调用valueOf(),如果返回的是原始值就调用String(),如果是复合制就报错

3Boolean
所有的对象用Boolean转换后都返回的是true
Boolean(0)
Boolean(null)
Boolean(undefined)
Boolean(NaN)
Boolean('')
这些值都返回的是false
Boolean([]),Boolean({})返回true

自动转换
Bool 自动转换就是调用Boolean的强转

加法都自动的转为字符串,减法自动的转化成数值

特殊的四种表达式
[]+[] //‘’  先调用valueOf()返回空数组,在调用toString()返回的是空字符串
[]+{}//[jobject object] 空字符串和[object object] 相加
{} +[] //0 js引擎会把第一个空的对象解释为空代码段,所以是+[] ,返回的是0
{}+{} //NaN 返回的+{} 就是NaN

将一个字符串赋值给一个变量,就不能用数组的方式来改变字符串中的某个字符
如果转换成对象的时候可以转换,这是因为原始类型对应的是原始值,对象传递对应的引用类型 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值