gpt4 book ai didi

javascript - 在 JavaScript 中不推荐使用 for-in 那么 for-of 呢?

转载 作者:行者123 更新时间:2023-11-30 20:51:26 25 4
gpt4 key购买 nike

我行写在最佳实践中。因为我知道 for-in 是一种不好的做法,因为它是不好的行为,所以我停止使用它。但是使用 for-of 呢?我们应该在迭代器(var、let、const)之前使用哪个词,为什么?

    for (const iterator of cells) {        iterator.addEventListener('click', function (event) {        console.log(iterator);        });    }

最佳答案

for-of 专门用于循环遍历可迭代对象(例如数组)的值。所以,是的,绝对地,在数组上使用 for-of 是非常好的做法。

and which word should we use before the iterator (var, let, const) and why

这取决于你。 (但它不是一个“迭代器”。它是一个“变量”或“绑定(bind)”,或者更笼统地说,“标识符”。iteratorfor-of 在幕后使用的对象。)如果我不打算在循环中更改该绑定(bind)的值(通常最好不要更改),我会使用 const,因为它是每次循环迭代的常量。 let 也是一个合理的选择,在这两种情况下,循环内创建的任何闭包都不会与 the closures in loops problem 冲突。与那个绑定(bind)。但出于同样的原因,如果在循环构造中声明,letconst 都可能对性能产生影响,因为为创建了一个 new 绑定(bind)每次循环迭代。如果您使用 var,它将具有函数范围,因此不会为每个循环迭代重新创建。 (但我不会使用 var;如果我有一段对性能特别敏感的代码,我需要避免重新绑定(bind),我会在循环上方使用 let .)


...since I knew that for-in is a bad practice because of it's bad behavior...

for-in 如果用于其目的,则不是“不良行为”:遍历对象的可枚举属性的名称。只是人们经常使用它来循环遍历数组的索引,它不是为此而设计的,也不是最佳选择。 (更多信息在 this question 的答案中,包括 mine。)

关于javascript - 在 JavaScript 中不推荐使用 for-in 那么 for-of 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135305/

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