Могу ли я отформатировать свой код JavaScript / JQuery с помощью переносов строк и вкладок? - PullRequest
5 голосов
/ 23 февраля 2012

Как программист C #, изучающий JavaScript, я нахожу это более читабельным:

$(this)
  .first()
  .prepend("<h3>Title</h3>")
  .end()
  .removeClass("hidden");

чем это:

$(this).first().prepend("<h3>Title</h3>").end().removeClass("hidden");

Однако JSLint жалуется на первый. Но я не понимаю почему. Это доставит мне неприятности где-нибудь?

Обновление: Вы можете установить значение отступа внизу страницы jslint и, таким образом, сделать свой код «допустимым». Существует ветвь JsLint, http://www.jshint.com/,, которая также принимает вкладки.

Ответы [ 4 ]

3 голосов
/ 23 февраля 2012

Проблема с этим кодом в jsLint связана с идентификацией: если вы сделаете отступ в 4 пробела, ошибок не будет

(прокрутите вниз до параметров и измените настройки идентификации, если значение по умолчанию не соответствует желаемому)

1 голос
/ 23 февраля 2012

Предупреждение от JSLint - дело вкуса.Кто бы ни написал это, он обнаружит, что расположение вещей таким образом имеет больше смысла:

$(this).
  first().
  prepend("<h3>Title</h3>").
  end().
  removeClass("hidden");

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

Вы в безопасности с тем, как пишете, но мне бы очень хотелось, чтобы кто-то (разработчики jslint) рассказал нам, как отключить это сообщение.

0 голосов
/ 23 февраля 2012

Хорошая практика кодирования заключается в том, чтобы ваш код читался вами и кем-либо еще, и это пример

$(this).first()
.prepend("<h3>Title</h3>")
.end()
.removeClass("hidden");

if(something)
{
   // do something
}
else
{
   //do something else
}

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

0 голосов
/ 23 февраля 2012

Ваш код в порядке, если вы отформатируете его так, как если бы jslint не жаловался (ну, конечно, он жалуется на то, что $ не определено, но остальной код в порядке)

$(this).
    first().
    prepend("<h3>Title</h3>").
    end().
    removeClass("hidden");
...