JavaScript中有一件我无法理解的事情。
当我们声明一个这样的变量时:
var var_Name
它称为本地变量。
当我们声明一个这样的变量时:
var_Name
它称为全局变量。
当浏览器确切重置其值时?页面刷新后?
我的意思是,当页面加载时,我声明了一个变量,到时候,我增加了它的值。当值将重新设置为原始初始化时?当我刷新页面?或者如果它是局部变量,它会在停止使用后立即刷新,如果它是全局变量,它只在页面刷新时刷新?
谢谢!
答案 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)。