js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。
当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则
重点:
表达式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;
逻辑或 || : var a = 表达式1 || 表达式2 表达式1 表达式2 a取值 1 0 表达式1结果值 1 1 表达式1结果值 0 1 表达式2结果值 0 0 表达式2结果值 逻辑与 && : var a = 表达式1 && 表达式2 表达式1 表达式2 a取值 1 0 表达式2结果值 1 1 表达式2结果值 0 1 表达式1结果值 0 0 表达式1结果值 主要原因是因为短路,逻辑或 || 在前面有一个ture的时候则不看后面直接停止,逻辑与&&同理。 然后计算赋值和我们平时一样之获取最新的一次计算结果值。
例如
1
|
b = (1 + 1, 2 + 2, 3 + 3); //b=6; |
嘛嘛,当然只是猜测。