Может кто-нибудь объяснить мне, почему приоритет оператора применяется к логическим операторам, таким как ||
и &&
в JavaScript? Что это означает в такой операции, как:
true || false && false
false && false
вычисляется первым, потому что оператор &&
имеет более высокий приоритет перед оператором ||
в JavaScript. в соответствии с тем, насколько я знаю, false && false
не оценивается двигателем JavaScript, потому что до || у оператора есть литерал true
, а когда что-то true
перед оператором ||
, то вещь после оператора ||
не будет оценена, это называется "коротким замыканием логических операторов" в JavaScript, другом примере будет:
true || alert ()
вызов функции никогда не происходит, даже если вызов функции имеет более высокий приоритет, чем оператор ||
и другой Например,
true || x = 7
, если в JavaScript допустимо короткое замыкание логических операторов, то приведенный выше код не должен выдавать ошибку, поскольку x = 7 не вычисляется, поскольку перед оператором ||
существует литерал true
.