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调用开始后添加 因为这是一个你不断添加和运行的函数,所以它一直在这样做,删除并重新添加。因此,您创建了一个无限循环