彻底搞懂JS“+”号操作符导致的隐式类型转换:var str=true+11+null+9+undefined+“zhuanbang“+false+null+9+[]

题目:

var str=true+11+null+9+undefined+“zhuanbang”+false+null+9+[];
问题:str值等于多少?

理解下面这张图,便能得出题目的正确答案:

在这里插入图片描述

分析:

注意: 加法规则从左到右计算

  1. console.log(true + 11):true转化为1,结果为12
  2. console.log(true + 11 + null):null转化为0,结果为12
  3. console.log(true + 11 + null + 9):12+9=21
  4. console.log(true + 11 + null + 9 + undefined):21 + undefined = NaN
  5. console.log(true + 11 + null + 9 + undefined + "zhuanbang"):‘NaN’ + ‘zhuanbang’ = ‘NaNzhuanbang’
  6. console.log(true + 11 + null + 9 + undefined + "zhuanbang" + false):‘NaNzhuanbang’ + ‘false’ = ‘NaNzhuanbangfalse’
  7. console.log(true + 11 + null + 9 + undefined + "zhuanbang" + false + null):‘NaNzhuanbangfalse’ + ‘null’ =‘NaNzhuanbangfalsenull’
  8. console.log(true + 11 + null + 9 + undefined + "zhuanbang" + false + null + 9):‘NaNzhuanbangfalsenull’ + ‘9’ = ‘NaNzhuanbangfalsenull9’
  9. console.log(true + 11 + null + 9 + undefined + "zhuanbang" + false + null + 9 + []):‘NaNzhuanbangfalsenull9’ + ’ ’ = ‘NaNzhuanbangfalsenull9’

规则都总结在上面图中,如果看不懂结果,可以看图。

猜你喜欢

转载自blog.csdn.net/weixin_43334673/article/details/110848158