JavaScript 中 let 和 var 的区别

发布于 2023-01-30 21:51:45 字数 1424 浏览 100 评论 0

在 JavaScript 中,您可以使用 let 或者 var 声明可变变量。 一个变量与 let 关键字只会在声明的块内使用,不会影响嵌套块中使用的变量,例如 if 声明和 for 循环,或块外。 下面是一个例子:

let x = 1;
if (x === 1) {
  let x = 2;
  if (x === 2) {
    let x = 3;
    x; // 3
  }
  x; // 2
}
x; // 1

另一个选择是 varvar 关键字的范围可以是 function-scoped 或 global-scoped var 函数中声明的变量不会渗入其他函数,但会渗入嵌套块,例如 if 声明和 for 循环。

var x = 1;
if (x === 1) {
  var x = 2;
  if (x === 2) {
    var x = 3;
    x; // 3
  }
  x; // 3
}
x; // 3

Hoisting

之间的另一个区别 let 和 var 你可以使用一个声明的变量吗 var 在实际之前 var 陈述。 这是因为 JavaScript 提升 了所有 var 函数调用开始的声明。 这是一个常见的混淆来源,这也是我们推荐使用的原因之一 let 代替 var

function test() {
  console.log(x); // undefined
  console.log(y); // "ReferenceError: Cannot access 'y' before initialization"
  var x = 3;
  let y = 3;
}

test();

let 声明也被提升了,但是你得到了 ReferenceError 如果您尝试访问声明为 let 在实际声明语句运行之前。 这就是为什么错误消息是 无法在初始化之前访问 y,而不是“y 未定义”,如果你没有声明,JavaScript 就会抛出这个错误消息 y 根本。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

眼中杀气

暂无简介

文章
评论
25 人气
更多

推荐作者

丶视觉

文章 0 评论 0

蓝礼

文章 0 评论 0

birdxs

文章 0 评论 0

foonlee

文章 0 评论 0

微信用户

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文