对于&&(与)|| (或)运算符的新理解
- 由于本人水平一般,之前一直认为&&本质其实是一个函数 结果会返回false和true,今天才真正意义上理解,首先这其实是运算符,不会影响下面代码的执行(之前我以为会影响,如果是false下面的代码就不执行了)今天我在网上仔细查阅资料,补足了自己的知识面,下面就是我要补充的部分_
补充:逻辑与的优先级是高于逻辑或的;
比如console.log(3||2&&5||0),会先算2&&5的值为5,然后再3||5----3,最后再3||0----3,所以最终结果为3.
补充
表达式a && 表达式b : 计算表达式a(也可以是函数)的运算结果,
如果为 True, 执行表达式b(或函数),并返回b的结果;
如果为 False,返回a的结果;
表达式a || 表达式b : 计算表达式a(也可以是函数)的运算结果,
如果为 Fasle, 执行表达式b(或函数),并返回b的结果;
如果为 True,返回a的结果;
转换规则:
对象为true;
非零数字为true;
零为false;
非空字符串为true;
空字符串为法false;
其他为false;
例如:
var a = obj || " " ; //如果 obj 为空,a就赋值为 " " ;
var a = check() && do(); //如果check()返回为真,就执行do(),并将结果赋值给 a;