因此,我正在考虑在 if-else 语句中使用逻辑运算符编写稍微复杂的操作。我知道我可以做括号,我知道这是更好的方法,但我很好奇,所以我要问。如果我要做这样的事情:
if (firstRun == true || selectedCategory != undefined && selectedState != undefined) {
//Do something
} else {
//Do something else
}
如果不使用括号,将如何操作?我知道逻辑运算符有一个操作顺序,类似于 PEMDAS,对吧?我很好奇它是否会像这样运行:
firstRun == true || (selectedCategory != undefined && selectedState != undefined)
或者如果“或”运算符优先,它最终会像这样:
(firstRun == true || selectedCategory != undefined) && selectedState != undefined
如果你能在某处找到它的操作顺序的完整列表会很好。谢谢!
原文由 Jtaylorapps 发布,翻译遵循 CC BY-SA 4.0 许可协议
我的经验法则(基本上涵盖了条件语句所有用例的 99%)是:
()
. or [...]
!
< , >= , === , !=, ...
&&
||
MDN 为您提供了详尽的分类: JavaScript 运算符优先级
所以对于你的例子:
等于
对于比上述情况更复杂的任何事情,为了可读性,我无论如何都会考虑重构代码!