gpt4 book ai didi

javascript - 为什么 CoffeeScript 会这样编译一个 for 循环?

转载 作者:数据小太阳 更新时间:2023-10-29 04:33:47 26 4
gpt4 key购买 nike

这段 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 的存在,循环不再是无限的,以跟踪循环中的位置。

关于javascript - 为什么 CoffeeScript 会这样编译一个 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17564597/

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