Что делает «var» в JavaScript?Как понять этот код (о javascript 'var')
(function (a) {
var a;
console.log(a); // why output 1?
})(1)
Что делает «var» в JavaScript?Как понять этот код (о javascript 'var')
(function (a) {
var a;
console.log(a); // why output 1?
})(1)
Он объявляет переменную в локальной области.
Как сказал RJM, он объявляет переменную в локальной области. Более конкретно, к путанице, которую вы, похоже, имеете, она выводит 1, потому что вы немедленно вызываете функцию, передавая ее в 1. Это значение устанавливается для переменной a
. Вызов var a;
после a
уже установлен эффективно, ничего не делает.
Чтобы дать немного больше контекста этому утверждению, объявления переменных в javascript поднимаются вверху области. Подробнее об этом на MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting
, когда мы используем var, объявляет переменную, которая существует, что делает движок js? благодаря! – keenwon
вар определить новую переменную внутри области видимости функции, то a
не могут быть доступны вне контекста функции.
Для получения дополнительной информации вы можете обратиться к Closure.
Я надеюсь, что помогает: D
В коде при условии, вы работаете самостоятельно выполняет анонимную функцию.
(function(){
//Code goes here
})();
Все, что определено в предыдущей скобке, выполняется немедленно. Переменные и функции, определенные вне анонимной функции, не могут достичь всего, что определено внутри.
Вы передаете целое число 1 в самоисполнение, которое определено как var a
.
(function (a) {
var a;
console.log(a); // why output 1?
})(1)
Он устанавливает А как переменную и автоматически устанавливает ее как логическое «истинное».
Почему не определено? – keenwon
Как указывает Дэймон, он просто обновляет переменную аргумента 'a' в этой функции. В вашем примере объявление 'var a' действительно не действует. – RJM