【发布时间】:2021-06-30 03:39:30
【问题描述】:
我对 JavaScript 还很陌生,并且遇到过我不太了解的情况: 看看这段代码:
let i = 0;
while (i < 4) {
const test = i;
console.log(test);
i++;
}
因此控制台会打印出如下内容:
0, 1、 2、 3. 我认为与 var 关键字相反,不能重新声明带有 const 关键字的变量,但每次循环重新启动时,测试变量仍会再次声明(不仅更新,而且声明全新)。 这怎么可能?我认为它与执行上下文或范围有关,实际上我的测试变量应该限定在块(while-loop)中,但它仍然可以在每次循环时重新分配。
【问题讨论】:
-
与
var关键字相反,使用const声明的变量将仅作用于包装代码块(大括号)。因此,这里每次迭代都会创建一个全新的test变量。它永远不会改变,并且每个 iteration 都不知道先前创建的test变量
标签: javascript variables while-loop scope constants