有人能解释为什么运算符优先级适用于逻辑运算符,如||和&&在JavaScript中吗?在这样的手术中,这意味着什么:
true \x\x false && false
首先计算false && false是因为&&运算符在JavaScript中比||运算符具有更高的优先级。根据我所知道的,false && false不是由JavaScript引擎计算的,因为在true运算符之前有一个true文本,当在||运算符之前是true时,||运算符之后的东西将不会被计算,这在JavaScript中称为“逻辑运算符的短路”,另一个例子是:
真\警报()
函数调用永远不会发生,即使函数调用具有比||操作符更高的优先级,另一个例子是
真x = 7
如果逻辑运算符的短路在JavaScript中是真的,那么上面的代码就不能产生错误,因为x = 7是不计算的,因为在||运算符之前有一个true文字。
发布于 2020-04-20 09:48:19
运算符优先只确定分组,而不是实际的计算顺序:https://stackoverflow.com/a/46506130
true || false && false变成了true || (false && false),但仍然从左到right.true || alert()计算为true || (alert()),而非(true || alert)()true || x = 7计算为(true || x) = 7,并导致错误,而不是true || (x = 7)。
https://stackoverflow.com/questions/61319353
复制相似问题