gpt4 book ai didi

javascript - 简单的 JavaScript,无法理解它

转载 作者:行者123 更新时间:2023-11-30 08:02:28 25 4
gpt4 key购买 nike

x = 1;

var add = function (x) {
x++;
return x;
};

setTimeout(add, 1000);

console.log(x);

为什么这不能正常工作?控制台只说 1 并停止,但我希望它在每次使用超时属性(1 2 3 4 等等)调用添加处理程序时添加 x。我知道我可以为此使用 for 循环。但我想知道是否也可以这样做。

最佳答案

setTimeout 是异步的。您告诉它在 1 秒(1000 毫秒)后执行 add,它确实执行了。同时执行console.log(x),记录x的当前值,1。

在问题中您说您希望看到值不断增加。为此,您需要使用更像这样的代码:

var x = 1;

function add() {
x++;
console.log(x);
};

setInterval(add, 1000);

编辑:另外,请查看 Quentin 关于屏蔽全局变量的要点 2。

关于javascript - 简单的 JavaScript,无法理解它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24513641/

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