В моем шаблоне страницы есть много файлов * .js. Некоторое глобальное объявление переменной javascript (redeclaration) в одном из этих файлов приводит к конфликту с другим кодом javascript. Поскольку на сайте много файлов, трудно найти место в коде, где объявлена эта переменная (имя переменной - «имя» и очень много файлов, показанных в результатах поиска). Есть ли отладчики кода javascript, которые могут показать, где в коде (имя файла js) указано конкретная переменная?Невозможно найти объявление переменной в большом наборе включенных js-файлов
ответ
Если вы не просто ищите имя переменной, но расширяете поиск, чтобы искать name =
, вы должны хотя бы сузить свой поиск, чтобы получить декларацию/повторную декларацию этой переменной, а не соответствие каждому месту, в котором находится переменная. используемый.
Двухсторонняя отмечает
Чтобы избежать такого рода путаницы в будущем, ваш JavaScript действительно должны избегать использования глобальных переменных, как это. Попробуйте перечислить ваши переменные, чтобы избежать таких конфликтов. Прочитайте this SO question о том, как это сделать.
Вы должны попытаться свести к минимуму все ваши JavaScript-файлы в один файл, чтобы избежать ненужных HTTP-запросов. Во время процесса минимизации вы также, скорее всего, получите предупреждения об этом виде переменных конфликтов.
Запустите свой код через JsLint http://www.jslint.com/lint.html. Проверьте все флажки, кроме «stop on first error», «safe subset» и «adsafe», поскольку вы хотите узнать только, что такое глобальные переменные.
Вы можете сделать переменную частной заключая код внутри крышки, как этот
(function(){
var yourPrivateVariable = 0;
window.yourGlobalVariable = 0;
}());