true || false && false
这个逻辑判断表达式结果是多少?不少人应该会认为是false,但正确的结果是true,一开始我也犯了同样的错误,但结果为什么是true?
真实的原因是由于逻辑操作符也有优先级关系,其优先级排序如下:
操作符 | 优先级 |
---|---|
! | High |
&& | Medium |
| | | Low |
根据逻辑操作符的优先级关系,true || false && false
等价于true || (false && false)
,也就是说会优先进行逻辑与操作再进行逻辑或操作,因为逻辑与的优先级高于逻辑或,如果属于同等优先级则按照从左至右的顺序进行运算。
当然小括号的优先级是最高的,为了代码的可阅读性更好依然建议使用小括号对逻辑运算的优先级进行标识。