[英](Javascript) Global Variable inside function is not changing value before https request
[英]In Javascript, global variable is not changing value inside a function
var a = 1;
function b() {
function a() {}; // local scope
a = 10; // global scope
}
b();
alert(a);
它警报1而不是10。我想知道为什么会这样吗?
函数名称和变量在Javascript中本质上是相同的。 您可以通过以下方式声明函数:
var a = function () {};
在大多数情况下,它与function a() {}
相同。 两者都会在当前范围内创建一个符号 ,并使该符号的值成为函数。
你在做什么是你的阴影,全球a
用自己的本地a
。 此局部变量a
是通过var a
还是function a
定义的都没有区别。
您的代码与此相同:
var a = 1;
function b() {
var a = function () {}; // local scope
a = 10;
}
b();
alert(a);
因此,您的局部作用域函数的声明将创建一个名为a
的新局部变量,该变量最初具有分配给它的函数,但随后将其重新分配为值10
。 此内部分配未触及较高范围的a
。
如果外a
定义是在全球范围内,那么你可以分配给它:
window.a = 10;
如果它不在全局范围内,则它已被a
的内部定义“隐藏”,并且无法直接从内部范围到达外部a
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.