Когда нужно использовать `{` в операторе `if`? [дубликат]

179
04 сентября 2018, 11:10

На данный вопрос уже ответили:

  • Объясните мне пожалуйста, зачем нужно всегда ставить { и } 12 ответов

Пример , в 1 случае используется , а во 2 - нет

if (inputField.value.length == 0) {
  if (helpText != null) 
    helpText.innerHTML = "Please enter a value.";
   return false;
}
Answer 1

Если оператор должен охватывать одно утверждение то {} не обязательно в противном случае обязательно. Вы можете использовать кривые скобки для любого оператора if.

Answer 2

Фигурными скобками в js обозначается блок кода. Оператор if создаёт условие, при котором этот блок кода выполнится. Оператор if также можно использовать как условие для одиночного действия, также как и блок кода можно создать отдельно от условия.

Answer 3
Скобки у if обязательно ставить если

Внутри несколько операторов

if (smth) {
  doSmth1();
  doSmth2();
}

К этому if есть else, а внутри находится другой if без else

if (smth1) {
  if (smth2)
    doSmth12();
} else
  doOther();

потому что без скобок else будет относиться к ближайшему if:

if (smth1)
  if (smth2)
    doSmth12();
  else
    doSmth1();
if (smth1)
  if (smth2)
    doSmth12();
  else
    doSmth1();
else
  doOther();
Остальные случаи

В остальных случаях if состоит из того, что считается одним оператором и не вызывает проблем с другими конструкциями, поэтому скобки необязательны.

Однако, скобки не только являются частью синтаксиса, но и играют стилистическую роль и влияют на читаемость кода. По этому моменту советую прочитать https://ru.stackoverflow.com/a/424351/178988.

Answer 4

Как правило, фигурные скобки в условиях используются тогда, когда код состоит из более чем одной строки. Так код становится более читаемым.

Скобки можно и не писать, когда код состоит из одной короткой строки. Однако, очень часто на практике фигурные скобки используют всегда, независимо от количества и размера строк кода.

Пример хорошего кода:

if (n > 0) {
  // первая строка кода
  // вторая строка кода
  // ...
}
if (n > 0) // одна короткая строка кода
if (n > 0) {
  // одна строка кода
}

Пример плохого кода:

// фигурные скобки не имеют смысла
if (n > 0) { alert (n) }
READ ALSO
Не работает React Slick, сделал npm install react-slick и npm install slick-carousel

Не работает React Slick, сделал npm install react-slick и npm install slick-carousel

Взял код из Example в репозитории react-slick гитхаба, но он отказывается работать, появляются точки и дикий горизонтальный скроллПРоект был создан...

194
Отключение и включение кнопки

Отключение и включение кнопки

Изначально кнопка заблокирована

168
Как сделать событие moseup, mousedown, click для телефона

Как сделать событие moseup, mousedown, click для телефона

Очевидно, что на телефоне нет мышки, чем заменить события moseup, mousedown, click для пользователей смартфонов?

224
(JS) Помогите с ошибкой “Unexpected strict mode reserved word”

(JS) Помогите с ошибкой “Unexpected strict mode reserved word”

Работать с js только начал, до этого С# и C++, понимаю, ошибка скорее всего нубская (Не судите строго)Есть простой класс:

178