【发布时间】:2019-03-14 14:36:49
【问题描述】:
我不明白为什么测试后的 x 不会变成 30 但仍然是 10
<script>
function test(){
var x = 30;
y = 40;
}
</script>
<script>
var x = 10;
var y = 20;
document.write("before test, x: " + x + ", y: " + y + "<br/><br/>");
test();
document.write("after test, x: " + x + ", y: " + y + "<br/><br/>");
</script>
【问题讨论】:
-
您在 test() 函数中创建了一个局部 x,但编辑了全局 y。
-
@Quentin 这与“var”的含义无关。这是关于可变阴影的。对于初学者来说,这是两件非常不同的事情。
-
@MY_Chen 因为我不能留下答案,我就在这里提一下。这称为变量阴影,也与范围有关。这个问题讲了:stackoverflow.com/questions/11901427/…
标签: javascript function variables