Определение функции JavaScript имеет функцию, которая сначала сканирует весь оператор тела функции и «обновление» все объявленные переменные в верхнюю часть функции:
'Использовать строгое'; function foo () {var x = 'hello,' + y; предупреждение (x); var y = 'bob';} foo ();Хотя это строгий режим, утверждение var x = 'hello,' + y; не сообщает об ошибке, потому что переменная Y объявляется позже. Но оповещение показывает Hello, неопределенное, указывая, что значение переменной Y не определен. Это именно потому, что двигатель JavaScript автоматически улучшает объявление переменной Y, но не увеличивает назначение переменной Y.
Для вышеупомянутой функции Foo () код, вид с помощью двигателя JavaScript, эквивалентен:
функция foo () {var y; // Объявление повышения переменной y var x = 'hello,' + y; предупреждение (x); y = 'bob';}Из -за этой странной «характеристики» JavaScript, когда мы определяем переменные внутри функции, пожалуйста, строго соблюдайте правило «для того, чтобы объявить все переменные сначала в рамках функции». Наиболее распространенным способом является использование VAR для объявления всех переменных, используемых внутри функции:
function foo () {var x = 1, // x инициализируется до 1 y = x + 1, // y инициализируется до 2 z, i; // z и я неопределенные // другие утверждения: for (i = 0; i <100; i ++) {...}}Приведенная выше статья о улучшении углубленного понимания переменных JS является всем контентом, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.