Ожидается jsLint { - PullRequest
       12

Ожидается jsLint {

7 голосов
/ 13 марта 2012

Учитывая следующее

for(var i=0; i< data.cats.length; i++) list += buildCategories(data.cats[i]);

jsLint говорит мне

Expected '{' and instead saw 'list'.

Есть ли реальный недостаток в использовании более коротких обозначений вместо того, чтобы оборачивать их фигурными скобками?

Ответы [ 3 ]

14 голосов
/ 13 марта 2012

Это защитное программирование - использование фигурных скобок четко определяет, какие операторы должны быть связаны с for.

Если вы не используете фигурные скобки, позже кто-то может по ошибке добавить еще один оператор под list += buildCategories..., ожидая, что он также будет выполнен с циклом for.

7 голосов
/ 14 марта 2012

"Есть ли реальный недостаток в использовании более коротких обозначений ..."

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

Например, когда я вложил if/else операторов, которые в противном случае могут исключить фигурные скобки, я предпочитаю балансировать else с использованием фигурных скобок.

if (condition)
    if (condition2)
        inner_if()
    else ;
else
    outer_if()

Этот код еще чище, чем этот ИМО ...

if (condition) {
    if (condition2) {
        inner_if();
    }
} else {
    outer_if();
}

Если кто-то может добавить другое утверждение к if или else, то это проблема понимания, которую необходимо исправить.

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


Если вам нужен более настраиваемый инструмент, вместо этого вы можете рассмотреть jsHint.com .

3 голосов
/ 13 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...