JSLint Скобки вокруг блока if

В Javascript, если выражение if не имеет фигурной скобки после него, следующий оператор помещается в блок if . То есть

if(foo)
bar();
baz();

эквивалентно

if(foo) {
  bar();
}
baz();

Дуглас Крокфорд рекомендует не использовать первый, потому что он сбивает с толку и может вызвать трудно отслеживаемые ошибки, если программист пытается добавить оператор в блок if . без подтяжек. По этой причине JsLint жалуется, если вы используете первую форму.

Я использую это все время, и мне кажется, что это не проблема при условии, что вы поместите оператор в ту же строку, что и оператор if , например:

if(foo) bar();
baz();

Это более кратко визуально, чем полная форма скобки, и у меня никогда не было путаницы с этим. Просто чтобы я мог передать JsLint и не иметь такого большого визуального шума, я иногда прибегал к использованию менее идиоматической формы, основанной на коротком замыкании оператора, например:

foo && bar();
baz();

Вы, наверное, все ждете, что я потороплюсь и спросу вопрос, так что вот оно: Считается ли вообще плохой практикой не использовать фигурные скобки в однострочных условных операторах, если вы их правильно форматируете? Зачем? Есть ли у JsLint законная причина жаловаться на это?

10
задан Peter Olson 7 August 2011 в 05:12
поделиться