Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个迭代永远有效_Javascript_Iteration - Fatal编程技术网

Javascript 为什么这个迭代永远有效

Javascript 为什么这个迭代永远有效,javascript,iteration,Javascript,Iteration,为什么这段代码运行无限时间。 我不明白发生了什么事 (函数(){ console.log(“开始”) 函数add(){ s、 删除(添加);//当我删除这一行时,一切正常。 s、 添加(添加); console.count(“运行”) } 常数s=新集合([ 添加 ]); s、 forEach(值=>{ 值() }); 控制台日志(“完成”) })() 这是一个概述代码。在以下规范中给出了答案: 每个值通常只访问一次但是,将显示一个值 如果在访问后将其删除,然后重新添加,则重新访问 forEa

为什么这段代码运行无限时间。 我不明白发生了什么事

(函数(){
console.log(“开始”)
函数add(){
s、 删除(添加);//当我删除这一行时,一切正常。
s、 添加(添加);
console.count(“运行”)
}
常数s=新集合([
添加
]);
s、 forEach(值=>{
值()
});
控制台日志(“完成”)
})()

这是一个概述代码。

在以下规范中给出了答案:

每个值通常只访问一次但是,将显示一个值 如果在访问后将其删除,然后重新添加,则重新访问 forEach调用完成之前。在 对forEach的调用开始,并且在被访问之前不会被访问,除非 在forEach调用完成之前再次添加该值。新价值观 在访问forEach调用开始后添加

因为这是一个你不断添加和运行的函数,所以它一直在这样做,删除并重新添加。因此,您创建了一个无限循环