Я хотел бы найти самый простой способ убедиться в области переменных.var keyword и область функции javascript
Проводы на следующем примере (jsfiddle):
var foo = function() {
var bar = function() {
pub = "public";
var pri = "private";
alert(pub) // public
alert(pri) // private
};
// alert(pub) // pub not defined
bar();
alert(pub) // public
// alert(pri) // pri not defined
};
foo();
alert(pub) // public
// alert(pri) // pri not defined
Могу ли я сказать, что:
1.- Все переменный с префиксом var
ключевым словом будет виден внутри его функции и все их вложенной функции?
2.- Все переменные без ключевого слова var
будут видны повсюду после того, как (его контейнер функций) будет выполнен?
Это интересный вопрос, но который я бы избегал на практике. Я считаю, что использование переменной var изменяет текущую область видимости. Не используя ее, переменная не будет использовать область (глобальная). –
Не исключайте 'var'. Если вы намереваетесь сделать глобальный, сделайте его явным. Выполнить код в строгом режиме, чтобы убедиться, что вы случайно не сделали неявного глобального. – RightSaidFred
@RightSaidFred +1 для строгого режима. – Domenic