Операторы "if" в JavaScript требуют фигурных скобок?
Возможный дубликат:
Нужны ли фигурные скобки в одной строке в JavaScript?
Я почти уверен в этом, но я хочу, чтобы избежать ошибочного кода. В JavaScript делать одиночные инструкции if
нужны фигурные скобки?
if(foo)
bar;
Это нормально?
Ответы
Ответ 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();
}
Ответ 3
Да, это разрешено. Это также обсуждается до:
Но этого следует избегать:
Ответ 4
Да, это синтаксически корректно. Но считается плохим.
Если вы написали его на одной строке, вы можете утверждать, что есть ситуации, когда это нормально, потому что это однозначно.
if (foo) bar;
В большинстве случаев, хотя фигурные скобки добавляются к ясности кода, это хорошо. Код чаще читается, чем написан, и он должен быть как можно более однозначным.
Кроме того, если вам в какой-то момент нужно добавить второй оператор, вам наверняка понадобится завиток.