JSLint (веб-сайт Javascript Validator) - Ошибка! Подразумеваемый глобальный: - PullRequest
4 голосов
/ 07 января 2011

Я только что проверил свой собственный скрипт галереи в JSLint .. и все ошибки были устранены, кроме одной.Подразумеваемая глобальная ошибка. Это действительно ошибка?Могу ли я игнорировать это или я должен работать над этим, чтобы решить эту ошибку ..?Спасибо за ваши ответы!

alt text

Error:
Implied global:
<bunch of vars and other stuff i dont know>

Что это значит?Кстати, я использую JQuery Library .. может быть, в этом проблема ^^ ..

Ответы [ 3 ]

6 голосов
/ 05 мая 2011

если вы используете объявленные извне переменные, как в этом случае, поместите оператор global в верхнюю часть вашего файла, например:

/ * global $, документ * /

2 голосов
/ 07 января 2011

Документация JSLint гласит:

Неопределенные переменные и функции

Самая большая проблема JavaScript - это его зависимость от глобальных переменных, в частности подразумеваемых глобальных переменных.Если переменная не объявлена ​​явно (обычно с помощью оператора var), то JavaScript предполагает, что переменная была глобальной.Это может маскировать неправильно написанные имена и другие проблемы.

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

Осторожно с этой ошибкой.Почти каждое соглашение о кодировании требует, чтобы вы не использовали подразумеваемые глобальные переменные.

Переменные могут быть объявлены с использованием ключевого слова var.

1 голос
/ 21 марта 2012

При написании кода JavaScript для браузера полезно указать JSLint, что вы находитесь в режиме браузера, например, включив следующее:

/*jslint browser: true */

Это должно разрешить 'document', 'setTimeout' и другие типичные настройки браузера по умолчанию

Поскольку jQuery, вероятно, не оценивается в том же контексте, что и ваш JavaScript, вам нужно сообщить, что всегда полезный '$' доступен с:

/*global $ */
...