Часто бывает упустив в длинном коде поставить var перед переменной, переменная вылезает в Global и либо портиться сама, либо портит чужие скрипты...
И потом не понимаешь, нормальный код, вроде должен работать, а совместно(или просто сам по себе) - глючит. Типично сам по себе, когда переменная из одной функции вылезает в область видимости родителя или выше по списку.(Можно тестировать и отдельные функции, ставя их в теги <script> (правдо надо запускать, можно обернуть всё в анонимную функцию, чтобы запускающий код не добавлял в Global )
Тестируем имена переменных, внесённых Нашим скриптом в область глобальной видимости
Цитата:
|
<!-- Тестируем имена переменных, внесённых Нашим скриптом в область глобальной видимости! -->
<script type="text/javascript">
$.a = JSON.parse(JSON.stringify(Object.keys(window)))
</script>
<!-- !!Тестируемый скрипт (Пример) -->
<script type="text/javascript">
//Тестируемый скрипт!!
var asdsafsd = 1;
var tyrtut = 4;
</script>
<!--//Концовка тестирующего скрипта -->
<script type="text/javascript">
$.b = JSON.parse(JSON.stringify(Object.keys(window)));
(function() {var obj={};
for(var i=0;i<window['$']['b'].length;i++)obj[window['$']['b'][i]]=1;
for(var i=0;i<window['$']['a'].length;i++) delete obj[window['$']['a'][i]];
alert('Переменные вносимые тестируемым скриптом в Global:\n'+JSON.parse(JSON.stringify(Object.keys(o bj))).join(',\n'));
}());
</script>
|
===================================
Без Раскраски:
<!-- Тестируем имена переменных, внесённых Нашим скриптом в область глобальной видимости! -->
<script type="text/javascript">
$={} //Добавляем, если на странице нет jQuery
$.a = JSON.parse(JSON.stringify(Object.keys(window)))
</script>
<!-- !!Тестируемый скрипт (Пример) -->
<script type="text/javascript">
//Тестируемый скрипт!!
var asdsafsd = 1;
var tyrtut = 4;
</script>
<!--//Концовка тестирующего скрипта -->
<script type="text/javascript">
$.b = JSON.parse(JSON.stringify(Object.keys(window)));
(function() {var obj={};
for(var i=0;i<window['$']['b'].length;i++)obj[window['$']['b'][i]]=1;
for(var i=0;i<window['$']['a'].length;i++) delete obj[window['$']['a'][i]];
alert('Переменные вносимые тестируемым скриптом в Global:\n'+JSON.parse(JSON.stringify(Object.keys(obj))).join(',\n'));
}());
</script>
Вчера чёто понадобилось найти в длинносвернутом коде ляп без var - может кому понадобиться