Область действия переменной относится к видимости переменной, тогда как жизненный цикл (период выживания) рассматривает переменную с другой точки зрения.
Область видимости переменных в JS разделена на глобальные переменные и локальные переменные. Те, которые определены внутри функции, называются локальными переменными, а те, которые определены вне функции, называются глобальными переменными. («Вещи вне функции называются глобальными переменными» относительны. Здесь обсуждается предпосылка, что переменные, явно объявленные с помощью var. Переменные, определенные без var внутри функции, по умолчанию являются глобальными переменными. Конечно, объявление переменных без var не одобряется. ).
Скопируйте код кода следующим образом:
var glob = 4; //Объявляем глобальные переменные вне функции
функция fun() {
var height = 20; //Объявление var в функции является локальной переменной.
вес = 50 //Те, что объявлены без var в функции, являются глобальными переменными
}
веселье();
оповещение(вес);
В JS нет области действия на уровне блока, которая заключена в фигурные скобки {}. Есть на Яве. Напишите следующий код в основном методе
Скопируйте код кода следующим образом:
public static void main(String... args) {
for(int i=0;i<5;i++) {
}
{
интервал j=10;
}
интервал г = 20;
System.out.println(i); // i не видно, при анализе синтаксиса будет сообщено об ошибке, то есть компиляция не пройдет
System.out.println(j); // j не отображается, и при анализе синтаксиса будет сообщено об ошибке, то есть компиляция не пройдет.
System.out.println(z); // z виден, вывод 20;
}
Но если в JS
Скопируйте код кода следующим образом:
for(var i=0;i<5;i++) {
}
вар obj = {name:"Лили"};
for(var attr в obj) {
}
{
вар j=10;
}
alert(i);//Выход 4, без области действия на уровне блока
alert(attr); //Имя вывода, без области действия на уровне блока
alert(j);//Вывод 10, без области действия на уровне блока
Это также иллюстрирует проблему. Избегайте использования циклов for при объявлении переменных в глобальной области, иначе это приведет к загрязнению глобальной области именования.
Конечно, в JS1.7 для объявления переменных было предложено ключевое слово let (см. https://developer.mozilla.org/cn/New_in_JavaScript_1.7), которое применимо только к области применения оператора for.
Скопируйте код кода следующим образом:
for(let i=0;i<5;i++) {
// дела
}
alert(i);//При запуске возникает ошибка, указывающая, что i не определен
На JS1.7 нужно ссылаться следующим образом: <script type="application/javascript;version=1.7"/></script>
PS: Firefox2+ реализует JS1.7