javascript中,自动类型转换总结

类型不同的2个变量做加法(+)运算时,会发生自动类型转换:

  1. 如果2个变量是number, boolean, null, undefined中不同的2种类型,那么计算结果为number,其中null被当做0,undefined被当做NaN
  2. 如果2个变量至少有1个是stringobject类型,那么计算结果为string,其中null被当做’null’,undefined被当做’undefined’

类型不同的2个变量做非严格相等(==)运算时,会发生自动类型转换:

  1. null == undefined
  2. NaN不等于任何值,包括它自身
  3. 如果2个变量是number, ‘boolean’, string中不同的2种类型,那么它们都将被转换为number
  4. 如果2个变量中有且仅有1个是object类型,那么会优先调用这个object类型变量的valueOf()方法(如果存在的话),否则调用它的toString()方法。注意,如果这个object类型的变量是Date类型,那么只会调用toString()方法
  5. 如果2个变量都是object类型,那么比较它们的内存地址

参考

《Effective Javascript》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值