举例说明问题:
描述场景: 有两个变量arg1 ,arg2,只要其中一个为true,就输出‘yes’
let arg1 = true;
let arg2 = false;
console.log(arg1 === true || arg2 === true && 'yes')
// 结果输出 true 原因是:&& 符号的优先级高于 || 符号
很显然: 上面的输出是有问题的。
订正之后的代码:
let arg1 = true;
let arg2 = false;
console.log((arg1 === true || arg2 === true) && 'yes')
// 结果输出 'yes' 原因是: ()优先级高于 && 符号
答案正确。
结论:js的运算符是有优先级的,是有先后执行顺序的。
具体的排列顺序请参照
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence