Когда использовать var в Javascript
Может быть, довольно простой вопрос.
Где использовать ключевое слово var
в JavaScript. Мне кажется, я использую его или не получаю такого же эффекта (но, конечно, я все еще изучаю язык)
Например, они оба кажутся мне одинаковыми:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
и
(function(){
a = "mundo"
alert("Hola, " + a )
})()
Но, конечно, должен быть более сложный пример разницы.
Ответы
Ответ 1
Когда вы используете var
, вы создаете экземпляр переменной в текущей области. Это также предотвратит доступ к переменным с одинаковым именем в более высокой области видимости в пределах текущей области.
В первом примере "a" создается и устанавливается внутри области функции. Во втором примере "a" устанавливается вне области функции из-за отсутствия var
С var
:
var a = "A"
(function(){
var a = "B"
alert(a) //B
})()
alert(a); //A
Без var
:
var a = "A";
(function(){
a = "B"
alert(a) //B
})()
alert(a) //B
Ответ 2
Использование var:
var a = 'world';
myfunction = function(){
var a = "mundo"
alert("Hola, " + a )
}
myfunction(); //alerts 'hola, mundo'
alert(a); //alerts 'world';
Не использовать var:
var a = 'world';
myfunction = function(){
a = "mundo"
alert("Hola, " + a )
}
myfunction(); //alerts 'hola, mundo'
alert(a); //alerts 'mundo'
Ответ 3
Я думаю, что вам нужно обновить себя в области объектов Javascript.
Использование ключевого слова "var" поместит вашу переменную в самую верхнюю (глобальную) область. Это означает, что если функция использует одну и ту же переменную, объявленная переменная "var" перезапишет переменную (не-var) в вашей функции...
Области JavaScript
Ответ 4
Если var не используется внутри функции, JS будет искать его выше, поэтому, если вы используете save vars в разных функциях, они могут конфликтовать. Всегда стоит использовать var, если вы определяете новую переменную.