私は 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 がループごとに異なる変数を使用するのはなぜですか?