4

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

if (inputField.value.length == 0) {
  if (helpText != null) 
    helpText.innerHTML = "Please enter a value.";
   return false;
}
Qwertiy
  • 123,725
  • 4
    Всегда. (7 символов нужно...) –  Jul 12 '18 at 17:09
  • 7
    А отступы в примере сделаны именно такими специально, чтобы запутать? – Yaant Jul 12 '18 at 17:47
  • @Yaant вроде нормальные отступы, не вижу проблемы – Vlad Nikitin Jul 23 '18 at 07:55
  • Ну, вон в чате по ссылке в соседнем комментарии как раз обсуждали эти самые отступы. – Yaant Jul 23 '18 at 10:41
  • @Yaant так это дебилизм, разве это имеет значение какое кол-во отступов, они тратят ещё на это время, ебанутые – Vlad Nikitin Jul 26 '18 at 13:22
  • Не скажите, хорошо отформатированный код воспринимается в разы быстрее и легче. Это если даже не вспоминать о языках, где отступы — это часть синтаксиса. – Yaant Jul 26 '18 at 15:14

4 Answers4

4

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

Roman C
  • 9,043
  • 4
  • 20
  • 28
  • 17
    "кривые" - это руки, скобки - "фигурные" –  Jul 12 '18 at 17:13
  • 1
    @Igor Ваш комментарий нравится людям куда больше, чем, собственно, ответ, к которому Вы его оставили хД – Kir_Antipov Jul 12 '18 at 18:28
  • 2
    @Kir_Antipov Согласен. Хотя я несколько озадачен тем, что за комментарий проголосовало только десять человек из двадцати семи зашедших. –  Jul 12 '18 at 18:30
2

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

Diskyp
  • 1,522
2

Скобки у 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.

Qwertiy
  • 123,725
0

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

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

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

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

if (n > 0) // одна короткая строка кода

if (n > 0) {
  // одна строка кода
}

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

// фигурные скобки не имеют смысла
if (n > 0) { alert (n) }