Javascript变量初始化

时间:2013-03-08 14:40:43

标签: javascript

JavaScript中有一件我无法理解的事情。

当我们声明一个这样的变量时:

var var_Name

它称为本地变量

当我们声明一个这样的变量时:

var_Name

它称为全局变量

当浏览器确切重置其值时?页面刷新后?

我的意思是,当页面加载时,我声明了一个变量,到时候,我增加了它的值。当值将重新设置为原始初始化时?当我刷新页面?或者如果它是局部变量,它会在停止使用后立即刷新,如果它是全局变量,它只在页面刷新时刷新?

谢谢!

4 个答案:

答案 0 :(得分:3)

可以从页面加载的任何文件中的任何函数访问全局变量。 当页面重新加载时,该变量将被取消设置,直到某些代码再次运行并为其赋值。

答案 1 :(得分:3)

全球宣言:

var_Name = 1;
// is equal to
var var_Name = 1;
// and is also equal to
window.var_Name = 1;

只要窗口对象有效,变量就会存在。 因此,在您离开/重新加载当前页面之前它将可用。

只要函数正在运行,函数内的局部变量就会存在:

function y(){
 var x = 1;
 console.log(typeof x !== 'undefined');
}
y();
console.log(typeof x === 'undefined');

答案 2 :(得分:2)

Javascript引擎在页面加载时不维护任何变量值。因此,当页面重新加载时,在页面生命周期内声明和定义的任何全局变量都将丢失。

使用var声明的变量仅限于定义它们的范围。对于浏览器,只有Function scope和Global scope。因此,一旦函数返回,函数中声明的局部变量将不再存在,除非它被闭包捕获(一个值得在互联网上搜索的大型主题)。

在没有程序明确操作的情况下,变量“刷新”到最初分配的值。它们在范围内或超出范围,在范围内时,它们具有最后分配给它们的任何值。

值得注意的是,在函数外部执行以下操作:

var foo = 1;

仍然会创建一个全局变量,因为如果你不在函数范围内,你就在全局范围内。

答案 3 :(得分:0)

全局变量在所有文档中都可见。局部变量仅在您定义的块中可见。其他文档中将不会显示变量。

刷新页面时,所有变量都是新设置的,这意味着在保存之前你不会得到任何变量的值(例如在cookie中或通过ajax)。