发布于 2026-01-06 1 阅读
0

你可能不知道的 Let Var Const 的区别 - ES6 [视频 + 文章] 由 Mux 呈现的 DEV 全球展示挑战赛:展示你的项目!

你可能不知道的 Let 和 Var Const 的区别 - ES6 [视频 + 文章]

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

本文将讨论 let、var 和 const 之间的区别,并提供代码示例及其输出结果。

视频:

如果您觉得有用,请考虑订阅我的 YouTube 频道 😊 https://youtube.com/c/developerTharun

什么是 Let Var 和 Const?

要在 JavaScript 中使用变量,必须先声明该变量。在 ES6 之前,我们只能var使用 `<variable>` 来声明变量。从 ES6 开始letconst引入了 `<variable>` 和 `<variable>`,它们之间存在一些显著差异,需要了解。

差异

我们将从三个方面来分析它们之间的差异:

  1. 函数或代码块作用域
  2. 重新声明
  3. 重新定义

1. 函数或代码块作用域

变量:函数作用域:这意味着一旦使用 `var` 声明了一个变量,它就可以在该函数内的任何地方访问。这听起来不错,但当我们在 `<script>` 标签内使用 `var`var时,就会遇到问题,因为变量会泄漏到函数外部。varfor-loop

for (var i = 0; i < 5; i++) {
  console.log(i);
}

console.log(i); // i is still accessible here
Enter fullscreen mode Exit fullscreen mode

输出

0
1
2
3
4
5
Enter fullscreen mode Exit fullscreen mode

定义:代码块作用域:代码块就是一段用花括号括起来的代码{ }。因此,当使用 `<br>` 声明变量时,该变量的let作用域仅限于该代码块内,不会泄露到外部。

for (let i = 0; i < 5; i++) {
  console.log(i);
}

console.log(i); // the variable i is not accessible here
Enter fullscreen mode Exit fullscreen mode

输出

0
1
2
3
4
console.log(i);
            ^
ReferenceError: i is not defined
Enter fullscreen mode Exit fullscreen mode

Const:块级作用域:用 const 声明的变量const具有块级作用域,就像 let 一样,不能在作用域之外访问。

{
  const i = 10;
  console.log(i);
}

console.log(i);
Enter fullscreen mode Exit fullscreen mode

输出

10
console.log(i);
            ^
ReferenceError: i is not defined
Enter fullscreen mode Exit fullscreen mode

重新声明

变量:可以重新声明:使用 声明的变量可以在程序中的任何位置var再次使用 声明。var

var cat = "meow";
var cat = "psssss"; // no error
Enter fullscreen mode Exit fullscreen mode

Let:不能重新声明:使用声明的变量let不能在其同一作用域内重新声明。

let dog;

let dog; // causes error
Enter fullscreen mode Exit fullscreen mode

输出

let dog;
    ^
SyntaxError: Identifier 'dog' has already been declared
Enter fullscreen mode Exit fullscreen mode

Const:不能重新声明:使用 Const 声明的变量const不能在其同一作用域内重新声明。

const lion;

const lion; // causes error
Enter fullscreen mode Exit fullscreen mode

输出

const lion;
      ^
SyntaxError: Identifier 'lion' has already been declared
Enter fullscreen mode Exit fullscreen mode

3.重新定义

变量:可以重新定义:定义与声明不同,因为定义会给变量赋值。

var dog = "boww";
dog = "voww"; // no error
Enter fullscreen mode Exit fullscreen mode

令:可以重新定义:定义与声明不同,因为定义会给变量赋值。

let cat = "meow";
cat = "prrr"; // no error
Enter fullscreen mode Exit fullscreen mode

Const:不能重新定义:这将导致错误。此错误仅适用于当前作用域。

const lion = "roar";
lion = "rooor"; // cannot redefine
Enter fullscreen mode Exit fullscreen mode

输出

const lion = "roooor";
      ^
SyntaxError: Identifier 'lion' has already been declared
Enter fullscreen mode Exit fullscreen mode

概括

概括

如果你喜欢这篇文章,请点赞❤🦄并保存以备后用。如果你喜欢我的YouTube频道,请订阅:https://youtube.com/c/developerTharun

你或许会喜欢这个

作者:

[已删除用户] 图片

[已删除用户]

文章来源:https://dev.to/developertharun/differences- Between-let-var-const-that-you-didn-t-know-es6-video-article-4m70