javascript - 'OR' 语句中的 'AND' 和 'IF' 的正确语法是什么?

标签 javascript syntax

我有一个“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/

相关文章:

javascript - 如何在按钮内使用选择?

javascript - 错误 : Invalid value at 'requests[0]' (oneof), 一个字段 'kind' 已经设置。无法设置 'createShape'

c++ - C++中的错误检查

jquery - 在 JQuery 中使用 octothorpe (#) 指定对象

C++ - 错误 C3646 : unknown override specifier

javascript - 如何获取客户端在地址栏输入的地址

JavaScript 这是未定义的。这应该是全局对象

javascript - 如何决定在 React 中调用处理函数的最有效方法?

javascript - 在 node.js 中,如何以最轻量级的方式检查给定的一串代码在语法上是否正确?

iTerm 2 中的 Git 语法高亮显示