gpt4 book ai didi

javascript - 为什么变量值要传递到这里

转载 作者:行者123 更新时间:2023-11-28 13:28:53 26 4
gpt4 key购买 nike

我用两个函数 a()b() 编写了以下代码。

函数a()有一个循环,如下所示,在该循环内它调用函数b()。问题是第一个函数的循环计数器从 b() 获取其值,然后停止。两个函数之间没有传递任何值,它们唯一的共同点是变量的名称。

谁能解释一下这里到底发生了什么?

根据我的理解,它们都应该有自己的 x 副本,除非我声明 x 是全局的。

http://jsfiddle.net/rahulkadukar/s2gs9j05/

a();

function a() {
for (x = 0; x < 4; x++) {
console.log(x);
b();
console.log(x);
}
}

function b(){
for (x = 0; x < 4; x++) {
//Do nothing
}
}

上述函数的输出为

0
4

最佳答案

由于您没有使用 var 关键字将变量声明为局部变量,因此它们是全局变量。所以这两个函数都使用相同的变量x。将其更改为:

for (var x = 0; x < 4; x++)

它们将是每个函数中的局部变量。

关于javascript - 为什么变量值要传递到这里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26696663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com