我在tslint中找到了“首选”规则后一直在进行研究,似乎大多数人都认为不应在打字稿中使用for循环标准,但是我找不到关于为什么会这样。我知道可以使用for(... of ...)和for(... in ...)循环,但似乎for循环的标准在某些情况下仍然有用。谁能解释原因?这是仅出于可读性目的,还是对性能产生了影响,使新样式变得更好?
________________ EDIT ______________
我做了一些进一步的研究,并决定查看渲染的JavaScript的区别,这对我有所帮助。虽然标准的for循环和for(... in ...)都返回相同的值,但它们的类型不同,并且for(... of ...)返回的是数组中的实际值。所以,现在我看到了三种不同方法的区别,但是我看不出除了可读性之外还有什么要使用的决策,这意味着我不知道for(... of。)。 ..)在不需要索引的情况下,或者比它更易于阅读的情况下,比循环标准具有更高的性能。
答案 0 :(得分:0)
我们使用for … of
遍历数组,因为它已成为进行处理的通用方法。最主要的是JavaScript已经发展。现在,通常可以迭代的是 Iterator 。
使用迭代器,不可能直接从其索引访问数据。但是我们仍然可以使用for … of
循环。
一个例子:
const colors = new Map([
[1, "red"],
[2, "green"],
[3, "blue"]
]);
for (colorName of colors.values())
console.log(colorName)
结果将是:
red
green
blue
这里colors.values()
returns an iterator,而不是数组。无法使用索引访问其内容。
关于性能,我建议使用this benchmark。传统的for
循环比for … of
略好。