我看到网上有写文章写到 如果是true || 就返回第一个操作数,如果是false || 就返回第二个操作数。。。什么什么的
死记硬背对于我来说很难,
我的理解方式是
|| 操作符 :
有一个为true即为true,
从左到右转化成boolean值,如果值为true,就不继续计算了,直接返回该值
所以,它会返回转化后第一个为true 的值
&& 操作符 :
都为true为true,有false就会false
从左到右转化成boolean值,如果值为false,就不继续计算了直接返回该值
如果为true继续计算下一个值,如果都为true,就会一直计算下去,直到计算最后一个值,还是true,就会返回最后一个值
所以|| &&的返回值是什么,主要看它计算到哪里返回的,计算到哪里就返回哪里的值,这样就不容易模糊了
顺便一提,js的隐式转换,如判断 a == b ,先进行ToPrimitive判断,如结果出现非字符串,会先计算ToNumber(a) 然后比较
如果还不相同,会计算ToNumber(b) 然后两者比较