我有一个“if”语句,只是想知道它们是否都有效(我相信它们是有效的),如果有效,有什么区别?
var type;
var type2;
if ((type == 'BOS'|| type == 'BPS'|| type == 'BRS') && (type2 == 'BOS'|| type2 == 'BPS'|| type2 == 'BRS))
或者
if ((type == 'BOS') || (type == 'BPS') || (type == 'BRS') && (type2 == 'BOS') || (type2 == 'BPS') || (type2 == 'BRS'))
哪个具有正确的语法,它们的做法有何不同?有没有办法缩短这个语句?
谢谢
最佳答案
两种说法不同。是的,从语法上看,它们都是有效的陈述,但在逻辑上它们是不同的。由于 && 运算符的优先级高于 ||在 JavaScript 中, 生成的逻辑将按照语句 2 中的方式进行计算:
1) (type == 'BRS') && (type2 == 'BOS')
2) (type == 'BOS') || (type == 'BPS') || (result of 1) || (type2 == 'BPS') || (type2 == 'BRS')
在语句 1 中:
1) (type == 'BOS'|| type == 'BPS'|| type == 'BRS')
2) (type2 == 'BOS'|| type2 == 'BPS'|| type2 == 'BRS')
3) (result of 1) && (result of 2)
关于javascript - 'OR' 语句中的 'AND' 和 'IF' 的正确语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035376/