2016-04-08 2 views

ответ

0

Он объявляет переменную в локальной области.

+0

Почему не определено? – keenwon

+1

Как указывает Дэймон, он просто обновляет переменную аргумента 'a' в этой функции. В вашем примере объявление 'var a' действительно не действует. – RJM

1

Как сказал RJM, он объявляет переменную в локальной области. Более конкретно, к путанице, которую вы, похоже, имеете, она выводит 1, потому что вы немедленно вызываете функцию, передавая ее в 1. Это значение устанавливается для переменной a. Вызов var a; после a уже установлен эффективно, ничего не делает.

Чтобы дать немного больше контекста этому утверждению, объявления переменных в javascript поднимаются вверху области. Подробнее об этом на MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var#var_hoisting

+0

, когда мы используем var, объявляет переменную, которая существует, что делает движок js? благодаря! – keenwon

0

вар определить новую переменную внутри области видимости функции, то a не могут быть доступны вне контекста функции.

Для получения дополнительной информации вы можете обратиться к Closure.

Я надеюсь, что помогает: D

0

В коде при условии, вы работаете самостоятельно выполняет анонимную функцию.

(function(){ 
    //Code goes here 
})(); 

Все, что определено в предыдущей скобке, выполняется немедленно. Переменные и функции, определенные вне анонимной функции, не могут достичь всего, что определено внутри.

Вы передаете целое число 1 в самоисполнение, которое определено как var a.

(function (a) { 
    var a; 
    console.log(a); // why output 1? 
})(1) 
0

Он устанавливает А как переменную и автоматически устанавливает ее как логическое «истинное».

Смежные вопросы