Все те, которые определены вне функционального тела, являются глобальными переменными, а те, которые определены внутри функционального тела, являются локальными переменными. Определение здесь относится к объявлению VAR.
JavaScript имеет неявную глобальную концепцию, что означает, что любая переменная, которую вы не объявляете, станет глобальным объектом. Например:
Кода -копия выглядит следующим образом:
функциональный тест () {
myname = "Смаживание";
оповещение (myname);
}
тест(); // "Смаживание"
оповещение (myname); // "Смаживание"
Два результата одинаковы, что указывает на то, что MyName является глобальной переменной.
Итак, существует ли разница между неявными глобальными переменными и четко определенными глобальными переменными? Полем Должен быть ответ, см. Следующий пример:
Кода -копия выглядит следующим образом:
// определить три глобальных переменных
var global_test1 = 1;
Global_test2 = 2; // отрицательный учебник
(function () {
Global_test3 = 3; // отрицательный учебник
} ());
// Попытка удалить
удалить Global_test1; // ЛОЖЬ
удалить Global_test2; // истинный
удалить Global_test3; // истинный
// проверить удаление
Alert (typeof global_test1); // "число"
Alert (typeof global_test2); // "неопределенный"
Alert (typeof global_test3); // "неопределенный"
Из приведенного выше примера мы можем видеть, что Global_test1, определенная VAR вне функции, не может быть удалена, в то время как Global_test2 и Global_test3 не определены VAR, удаляются (независимо от того, было ли он создан в органе функции или нет).
Таким образом, глобальные переменные, объявленные VAR вне функции, не могут быть удалены, в то время как неявные глобальные переменные могут быть удалены.
Примечание здесь: JavaScript имеет поведение под названием «подъем» (подвеска/остановка анализа/приготовления).
Давайте используем пример для иллюстрации:
Кода -копия выглядит следующим образом:
var myname = "Смаживание"; // объявлять глобальные переменные
функциональный тест () {
оповещение (myname);
var myname = "local_huming";
оповещение (myname);
}
тест();
Вы предполагаете, что содержание оповещения дважды последовате? ? Очевидно, непоследовательно, нужно ли сказать эту последовательность? Полем Фактический вывод: «неопределенный», «local_huming».
Приведенный выше пример эквивалентен на
Кода -копия выглядит следующим образом:
var myname = "Смаживание"; // объявлять глобальные переменные
функциональный тест () {
var myname;
alert (maname); <br> myname = "local_huming";
оповещение (myname); // "местный"
}
тест();
Первый сигнал предупреждения MyName - это не глобальная переменная, которую вы думаете, а локальная переменная в области области (корпус функции). Хотя это не было объявлено, это считалось декларацией. Это то, что называется «поднятие».
Это должно быть понято. Если вы используете переменную в корпусе функции, а также восстановите ее позже, может возникнуть ошибка.
Спецификации письма:
Кода -копия выглядит следующим образом:
функциональный тест () {
var a = 1,
b = 2,
c = a + b,
d = {},
е,
F;
// Функциональное тело ...
}
Преимущества:
1. Все локальные переменные определяются в начале функции, что удобно для поиска;
2. Предотвратить использование логических ошибок до определения переменной.
Вы поняли переменную объявление JavaScript? Приведенный выше контент очень подробный и прост для понимания. Последнее резюме также очень уместно. Не пропустите это.