В JavaScript есть два типа переменных: локальные переменные и глобальные переменные. Конечно, наша статья - помочь вам действительно различить эти две переменные.
Во -первых, локальные переменные относятся к функциям, которые могут быть вызваны только в рамках функции, объявленной этой переменной. Переменная, которую можно назвать во всем коде в качестве глобальной переменной. Конечно, определенно не ясно понимать буквально. Я подробно расскажу ниже:
Как мы все знаем, переменные должны быть объявлены с помощью ключевого слова VAR. Однако переменные также могут быть использованы неявно в JavaScript, что означает, что они используются непосредственно без объявления. Более того, будьте осторожны, чтобы JavaScript всегда использовал неявно объявленные переменные в качестве глобальных переменных.
Например:
Кода -копия выглядит следующим образом:
Функция myName () {
i = 'Yuanjianhang';
}
мое имя();
Функция говорит name () {
оповещение (i);
}
SayName ();
Результатом вывода является: Юаньцзянханг
Это показывает, что переменная I является глобальной переменной. Если приведенный выше код изменен на следующее:
Кода -копия выглядит следующим образом:
Функция myName () {
var i = 'Yuanjianhang';
}
мое имя();
Функция говорит name () {
оповещение (i);
}
SayName ();
На этом этапе браузер не будет иметь результата вывода, потому что я определяется в функции MyName, так что это просто локальная переменная MyName и не может быть вызвана внешне.
Теперь оглянитесь на следующий код:
Кода -копия выглядит следующим образом:
Функция myName () {
i = 'Yuanjianhang';
}
мое имя();
Функция говорит name () {
оповещение (i);
}
SayName ();
Теперь давайте внесем некоторые изменения и удалите MyName (); и код заключается в следующем:
Кода -копия выглядит следующим образом:
Функция myName () {
i = 'Yuanjianhang';
}
Функция говорит name () {
оповещение (i);
}
SayName ();
В настоящее время браузер не будет много реагировать. Потому что, хотя я являюсь глобальной переменной, функция myName () не называется, поэтому она эквивалентна этому, хотя я объявляется, она не присваивает никакого значения I, поэтому вывода нет.
Точно так же, если приведенный выше пример изменен на:
Кода -копия выглядит следующим образом:
Функция myName () {
i = 'Yuanjianhang';
}
Функция говорит name () {
оповещение (i);
}
SayName ();
мое имя();
В этом случае результаты не будут выводиться. Когда код JavaScript будет выполнен, значение переменной, которую я буду проверять при вызове функции sayname (). В настоящее время функция MyName еще не была выполнена, что означает, что я еще не был назначен, поэтому результаты не будут выводиться.
Чтобы облегчить лучшее понимание каждого, вот еще один пример:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
i = 'guanxi';
}
mylovename ();
Функция myName () {
оповещение (i);
}
мое имя();
Каков результат на этот раз?
Ответ - Гуанси
Прежде всего, исходное значение I - Юаньцзянхан, но после вызова функции mylovename (значение I изменяется на гуанси, поэтому конечный результат вывода - гуанси.
Если вы измените код на:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
var i = 'guanxi';
}
mylovename ();
Функция myName () {
оповещение (i);
}
мое имя();
Результатом в это время является Юаньцзянхан, потому что два I в коде разные, один глобален, а другой - локальный. Это также можно понять таким образом. Хотя имена двух я одинаковы, сущность этих двух я отличается, как будто два человека с одинаковым именем. Хотя имена одинаковы, они не тот же человек.
Если вы преобразуете код в это:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
i = 'guanxi';
}
Функция myName () {
оповещение (i);
}
мое имя();
mylovename ();
Я полагаю, что каждый может выяснить результат сами по себе, и результат - Юаньцзянханг.
Поскольку глобальные переменные могут быть вызваны внутри функции, как насчет следующей ситуации:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
i = 'guanxi';
оповещение (i);
}
mylovename ();
Какое значение является переменной в настоящее время?
Давайте проанализируем:
Во -первых, глобальная переменная I назначена как: Yuanjianhang.
Следующая функция mylovename () вызывается, и глобальная переменная I переназначена на новое значение: guanxi
Таким образом, результат определенно: Гуанси.
Что если мы заранее будем предупреждать, например:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
оповещение (i);
i = 'guanxi';
}
mylovename ();
Какой результат в это время?
Проверенные результаты: неопределенные
Что если код такой:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
оповещение (i);
}
mylovename ();
Результатом в это время является: Юаньцзянханг
Почему возникает вышеупомянутая неопределенная ситуация? Потому что порядок выполнения кода находится сверху вниз, и нет определения I до выхода i. Таким образом, из этого мы можем видеть, что при использовании кода объявление переменных должно быть размещено перед кодом, чтобы избежать подобных проблем!
Сходным образом:
Кода -копия выглядит следующим образом:
var i = 'Yuanjianhang';
функция mylovename () {
оповещение (i);
var i = 'guanxi';
}
mylovename ();
В этом случае это также будет выведено: не определено
Хорошо, у меня есть только так много представлений о переменных, и я считаю, что каждый может понять это. Независимо от того, как скопирован код, его ядро не изменится.
Выше всего об этой статье. У вас было более глубокое понимание разницы между локальными переменными и глобальными переменными в JavaScript? Я желаю вам счастливого года и счастливого обучения.