Что означает "еще" в одной строке, если оператор соответствует?

В JavaScript я путаюсь с вложенными if

когда JS-компилятор / движок имеет этот код для интерпретации

if (cond1)
if (cond2)
statement1
else
statement2

(Это не с отступом нарочно)

Это интерпретируется так?

if (cond1) {
  if (cond2) {
    statement1
  }
}
else {
  statement2
}

Или вот так?

if (cond1) {
  if (cond2) {
    statement1
  }
  else {
    statement2
  }
}

Возникает вопрос: соответствует ли "else" первому или второму "if"?

Я также хотел бы знать, есть ли у этой проблемы интерпретации какое-то имя (например, "приоритет оператора") (я уверен, что оно есть). Я не могу найти эту проблему в Интернете, потому что я не знаю, как искать ее по названию.

Это может быть немного очевидно, но я собираюсь сказать это: я спрашиваю о javascript, потому что использую его прямо сейчас, но этот вопрос может касаться почти любого процедурного языка.

1 ответ

Решение

Это должен быть второй в JS. Это приведет к ошибке в python и ударит вас по носу в php, как только коллега отладит ваш код.

Другие вопросы по тегам