Можно ли проверить мой jQuery JavaScript с помощью JSLint?

Я хотел проверить свой JavaScript с помощью JSLint. Я также использую jQuery, и JSLint, похоже, очень недоволен jQuery.

Итак, если у меня есть этот код:

$(document).ready{
    $("a").click(function() {
        // foo
    });
});

Я получаю несколько сообщений JSLint:

Ошибка:

Проблема в строке 1, символ 1: «$» использовался до того, как он был определен.

$(document).ready{

...

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

Если бы в моем коде был только один вызов jQuery, я мог бы просто проигнорировать сообщение JSLint, но в 2500 строках скрипта много вызовов, я не могу найти ошибки, которые я хотел бы исправить между всеми этими сообщениями.

Итак, кто-нибудь знает, как настроить JSLint так, чтобы он работал с вызовами jQuery? Или есть что-то еще, что я могу использовать для проверки качества моего кода JavaScript/jQuery?


person newtogit    schedule 01.11.2010    source источник


Ответы (3)


Это недопустимый JavaScript, он должен быть:

$(document).ready(function() {

Таким образом, JSLint будет (соответственно) жаловаться на ваш синтаксис.

Если вы хотите избавиться от сообщения Implied global: $, document, перейдите в конец, где оно имеет Предопределенное (, разделенное), и введите jQuery, $ в это текстовое поле, а затем запустите снова. Для части document установите флажок Предполагать браузер в первом столбце.

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

person Nick Craver    schedule 01.11.2010
comment
Чтобы избежать предупреждений, вы можете добавить в свой код: /*node browser: true */ /*global $ */ - person lapo; 06.12.2011
comment
jslint не принимает подразумеваемые глобальные переменные, единственный способ заставить jslint прекратить жаловаться — это указать /*jslintbrowse: true, continue: true, devel: true, indent: 4, maxerr: 50, newcap: true, nomen: true , plusplus : true, regexp : true, sloppy : true, vars : true, white : true *//*global jQuery: false, $: false */ вверху файла. Не уверен, что сегодня хром на Mac ведет себя забавно, но когда я ввожу jQuery и $ в области глобальных переменных, это не работает? - person pixel 67; 29.09.2012

Добавьте это вверху вашего документа, чтобы проверить его:

/*jslint browser: true*/ /*global  $*/
person Andy Balaam    schedule 19.05.2012
comment
Спасибо, что сосредоточились на самом вопросе. У меня был такой же, с правильным синтаксисом, и это прибило его. - person Ken Ingram; 16.12.2016
comment
Даже в 2018 году я быстро искал это и нашел здесь. Бывает, чтобы ответить на вопрос, предполагая хороший код. - person Yann Poiré; 24.06.2018

Ник прав насчет вашего синтаксиса. Последний выпуск jQuery (1.4.3) проходит тесты JSLint. См. этот пост в блоге: http://blog.jquery.com/2010/10/16/jQuery-143-released/

person Vincent    schedule 01.11.2010
comment
Я думаю, что он спрашивает о своем собственном коде, который использует jQuery, а не сам jQuery. - person JAL; 01.11.2010