Подтвердить что ты не робот

Когда использовать var в Javascript

Может быть, довольно простой вопрос.

Где использовать ключевое слово var в JavaScript. Мне кажется, я использую его или не получаю такого же эффекта (но, конечно, я все еще изучаю язык)

Например, они оба кажутся мне одинаковыми:

(function(){
  var a = "mundo"
  alert("Hola, " + a )
})()

и

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()

Но, конечно, должен быть более сложный пример разницы.

4b9b3361

Ответ 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, если вы определяете новую переменную.