我是 CoffeeScript 的新手,对此非常兴奋。我在这里做了一些基本的循环。现在,CoffeeScript 正在为每个循环定义一个循环变量,如下所示:
var food, _i, _j, _len, _len1;
for (_i = 0, _len = fruits.length; _i < _len; _i++) {
food = fruits[_i];
console.log(food);
}
for (_j = 0, _len1 = vegetables.length; _j < _len1; _j++) {
food = vegetables[_j];
console.log(food);
}
我曾经这样编写循环代码:
for(var i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for(var i = 0; i < vegetables.length; i++) {
console.log(vegetables[i]);
}
i
是每个循环的循环变量(不包括嵌套循环)。现在我了解到您应该始终在定义变量之前声明它。所以我改变了我的编码习惯:
var i;
for(i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for(i = 0; i < vegetables.length; i++) {
console.log(vegetables[i]);
}
只要我在同一个范围内,我就没有发现任何问题,但是编译后的 CoffeeScript 代码让我感到疑惑。
为什么 CoffeeScript 会为每个循环使用不同的变量?