这段 CoffeeScript:
for i in [1..10]
console.log i
编译为:
for (i = _i = 1; _i <= 10; i = ++_i) {
console.log(i);
}
我不明白为什么它不只是使用i
. 有任何想法吗?
这段 CoffeeScript:
for i in [1..10]
console.log i
编译为:
for (i = _i = 1; _i <= 10; i = ++_i) {
console.log(i);
}
我不明白为什么它不只是使用i
. 有任何想法吗?
我对 CoffeeScript 不是很熟悉,但我的猜测是它是为了防止i
在循环中修改变量。
例如:
for i in [1..10]
console.log i
i = 7
可能已经产生了这个代码
for (i = 1; i <= 10; ++i) {
console.log(i);
i = 7;
}
这显然会产生一个无限循环。
然而,CoffeeScript 的版本意味着会发生这种情况:
for (i = _i = 1; _i <= 10; i = ++_i) {
console.log(i);
i = 7;
}
循环不再是无限的,因为存在_i
跟踪循环中的位置。