Подтвердить что ты не робот

Операторы "if" в JavaScript требуют фигурных скобок?

Возможный дубликат:
Нужны ли фигурные скобки в одной строке в JavaScript?

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

if(foo)
    bar;

Это нормально?

4b9b3361

Ответ 1

Да, это работает, но только до одной строки сразу после оператора "if" или "else". Если требуется использовать несколько строк, необходимы фигурные скобки.

Ниже будут работать

if(foo)
   Dance with me;
else
   Sing with me;

Следующие действия НЕ будут работать так, как вы хотите, чтобы они работали.

if(foo)
   Dance with me;
   Sing with me;
else
   Sing with me;
   You don't know anything;

Но если приведенное выше исправлено, как описано ниже, то оно работает для вас:

if(foo){
   Dance with me;
   Sing with me;
}else{
   Sing with me;
   You don't know anything; 
}

Ответ 2

В то время как синтаксически хорошо опустить их, вы не должны. В одном случае, когда двусмысленность сильно ударяет,

if (false)
    if (true) foo();
else
    bar();

Это не будет работать ни foo, ни bar, так как else относится ко второй инструкции if. Нет проблем, если используются фигурные скобки:

if (false) {
    if (true) { foo(); }
} else {
    bar();
}

Ответ 4

Да, это синтаксически корректно. Но считается плохим.

Если вы написали его на одной строке, вы можете утверждать, что есть ситуации, когда это нормально, потому что это однозначно.

 if (foo) bar;

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

Кроме того, если вам в какой-то момент нужно добавить второй оператор, вам наверняка понадобится завиток.