В Javascript, если выражение if
не имеет фигурной скобки после него, следующий оператор помещается внутри блока if
.То есть
if(foo)
bar();
baz();
эквивалентно
if(foo) {
bar();
}
baz();
Дуглас Крокфорд рекомендует не использовать первое, потому что это сбивает с толку и может привести к трудным для отслеживания ошибкам, если программист пытается добавитьоператор для блока if
без фигурных скобок.По этой причине JsLint жалуется, если вы используете первую форму.
Я использую это все время, и я чувствую, что это не проблема, если вы поместите оператор в ту же строку, что и оператор if
, например:
if(foo) bar();
baz();
Это более кратко визуально, чем полная форма скобок, и у меня никогда не было путаницы с этим.Просто чтобы я мог передать JsLint и не иметь такого большого визуального шума, я иногда прибегал к использованию менее идиоматической формы, основанной на коротком замыкании оператора, например:
foo && bar();
baz();
Вы, вероятно, все ждетемне поторопиться и задать вопрос, так что вот так: Обычно считается плохой практикой не использовать фигурные скобки в однострочных условных выражениях, если вы правильно их форматируете?Зачем?Есть ли законная причина для жалобы JsLint по этому поводу?