抱歉,如果我的术语在这个问题上不正确。
采取以下功能:
i = 1;
v = i * 2;
for (j = 0; j < 4; j++ ) {
console.log(v);
i++;
}
控制台将返回 2、2、2、2。当我遇到这种情况时,我将变量“v”移动到 for 循环中,它返回预期值 2、4、6、8。我对变量工作方式的理解从根本上说显然是错误的。
我的逻辑告诉我,变量 v 的值与变量 i 的值永久相关。因此,每次引用 v 时,也必须引用 i 的值。因为 i 会在数值上增加,所以 v 应该与此成比例增加。相反,似乎存储了 v 的结果值,而不是最初计算该值的实际表达式。
这是第一个原则问题,虽然我设法找到了解决该问题的方法,但我不明白为什么该解决方案有效。