JSLint сообщает о «неожиданном зависании» в имени переменной с префиксом подчеркивания - PullRequest
73 голосов
/ 14 июня 2010

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

Я использую Google Analytics на создаваемом мной веб-сайте. Я делаю ссылку на переменные GA, такие как "_gaq."

Я пытаюсь, чтобы мой JS-код был на 100% чистым JSLint (я не религиозен в отношении своего стиля кодирования, поэтому согласен с советником мистера Крокфорда). Тем не менее, я ничего не могу сделать с именами переменных Google ... так что, я думаю, я не могу получить 100% "чистоту".

Я публикую здесь сообщение на случай, если я неправильно понял сообщение и могу что-то сделать, чтобы соответствовать правилам JSLint.

Ответы [ 4 ]

72 голосов
/ 14 июня 2010

Ах, я обработал это ... Я завершаю операторы, использующие префиксные переменные подчеркивания, командами JSLint, чтобы отключить их, а затем снова включаю этот класс ошибок:

/*jslint nomen: true*/
... statement(s) with _var ...
/*jslint nomen: false*/
51 голосов
/ 01 февраля 2012

Лучший способ справиться с этим - просто включить опцию «Допускать висячие _ в идентификаторах» (номен). Подробнее см. http://www.jslint.com/lint.html ...

15 голосов
/ 06 июня 2011

JSLint - это просто инструмент качества кода. Неполное прохождение тестов не означает, что ваш код плохой; это просто означает, что вы не следуете всем соглашениям, изложенным его создателем. Хотя JSLint предлагает очень хорошие предложения, не всегда возможно выполнить их все, особенно при использовании чужой библиотеки, которая не была проверена на это. Вместо того, чтобы засорять ваш исходный код бессмысленными мета-комментариями, вы должны проверить свой код с отключенной опцией «Запретить висячие _ в идентификаторах», поскольку, кажется, нет смысла использовать ее с вашим конкретным кодом.

8 голосов
/ 09 августа 2012

Я использую JSLInt с node.js.Вы можете передать флаг --nomen, чтобы обойти эту функцию

jslint --nomen myfile.js 
...