【发布时间】:2023-12-07 07:43:01
【问题描述】:
为了理解 javascript 的基础知识,我遇到了以下代码,名为“foo”的变量的预期值是 7 和 5,但结果却是 7 和 7。不知道为什么....
var foo = 5;
(function Test() {
foo = 7;
console.log("foo=" + foo);
})();
console.log("foo=" + foo);
foo=7
foo=7
【问题讨论】:
-
一个非常好的关于 Scope 的幻灯片和这个......你没有使用这个但仍然很好地超出了范围 davidql.github.io/scope_talk/#
-
@Someone 你是在暗示this 不会回答他们的问题?认真的吗?
-
您为什么希望它不会改变?你没有局部变量。
-
这是因为他在调用函数之前声明了 foo 所以它正在修改同一个变量。 Foo 不是该匿名函数的本地范围。
标签: javascript variables global local