Переменные и объявления переменных — это самые основные понятия языка, и новички быстро их освоят. То же самое относится и к объявлению переменных в JavaScript: это очень просто var (ключевое слово) + имя переменной (идентификатор).
Путь 1
вар-тест;
var test = 5; Следует отметить, что это предложение нельзя включать в функцию, иначе оно будет локальной переменной. Это первый способ объявления глобальных переменных.
Способ 2
тест = 5;
Не используя var, напрямую присвойте значение тесту идентификатора, который неявно объявит тест глобальной переменной. Даже если оператор находится внутри функции, test становится глобальной переменной при выполнении функции.
Способ 3
окно.тест;
window.test = 5; Этот метод часто используется для предоставления доступа к некоторым функциям после выполнения анонимной функции. Например, последнее предложение в JQuery1.5.
window.jQuery = window.$ = jQuery;
Если вы просто используете переменный тест, разницы между тремя методами не будет. Например: alert(test) отобразит 5. Однако в некоторых случаях между этими тремя методами существуют различия. Объявите три переменные a1, a2, a3 указанными выше тремя способами соответственно.
а1 = 11;
вар а2 = 22;
окно.а3 = 33;
1. в окне
for(a в окне){
if(a=='a1'||a=='a2'||a=='a3'){
предупреждение(а)
}
}
IE6/7/8/9: появляется только a3, указывающий, что глобальные переменные, объявленные с помощью первого и второго методов, не могут быть получены через for in window.
Firefox/Chrome/Safari/Opera: все a1, a2 и a3 всплывают, указывая, что глобальные переменные, объявленные тремя способами, могут быть получены через for in window.
2.удалить
пытаться {
предупреждение (удалить a1);
}catch(e){alert('Невозможно удалить a1')}
пытаться{
предупреждение (удалить a2);
}catch(e){alert('Невозможно удалить a2')}
пытаться{
предупреждение (удалить a3);
}catch(e){alert('Невозможно удалить a3')}
Результаты следующие:
Как вы видете,
1. удаление a2 является ложным во всех браузерах. То есть переменные, объявленные через var, нельзя удалить, и все браузеры ведут себя одинаково. Об этом также упоминается в книге «Носорог».
2. Глобальные переменные, объявленные через window.a3, нельзя удалить в IE6/7/8, но их можно удалить в IE9/Firefox/Chrome/Safari/Opera.
Несмотря на различия в двух вышеуказанных пунктах, при использовании в работе оба возвращают true.
alert('a1' в окне);//true
alert('a2' в окне);//true
alert('a3' в окне);//true
При использовании с для открытия закрытия окна объекта все браузеры ведут себя одинаково, а именно:
с (окном) {
если(а1){
предупреждение(a1);//11
}
если(а2){
предупреждение(a2);//22
}
если(а3){
предупреждение(a3);//33
}
}