gpt4 book ai didi

javascript - var 和 let 之间的区别

转载 作者:行者123 更新时间:2023-11-28 17:28:04 25 4
gpt4 key购买 nike

我刚刚阅读了Kyle Simpsons“你不懂 Javascript”中有关 varlet 的讨论。

Chapter 2: Nested Scopes

函数foo使用let使用 block 声明变量,函数bar使用var普通声明。为了清楚起见,在这个例子中,变量 bc 实际上在相同的作用域中可用,对吗?那么在这里展示 foo 函数有什么意义呢?

function foo() {
var a = 1;
if (a >= 1) {
let b = 2;

while (b < 5) {
let c = b*2;
b++;
console.log(a + b);
}
}
}

function bar() {
var a = 1;
if (a >= 1) {
var b = 2;

while (b < 5) {
var c = b*2;
b++;
console.log(a + b);
}
}
}

最佳答案

foo 函数中,b 变量在 if 语句以及 c 之外无法访问> 变量在 while 之外不可访问。

原因是 let 声明的变量是 block 作用域的。

例如,以下log(b)将导致b未定义:

function foo() {
var a = 1;
if (a >= 1) {
let b = 2;

while (b < 5) {
let c = b*2;
b++;
console.log(a + b);
}
}

console.log(b);
}

关于javascript - var 和 let 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51123770/

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