你可能不知道的 Let 和 Var Const 的区别 - ES6 [视频 + 文章]
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
本文将讨论 let、var 和 const 之间的区别,并提供代码示例及其输出结果。
视频:
如果您觉得有用,请考虑订阅我的 YouTube 频道 😊 https://youtube.com/c/developerTharun
什么是 Let Var 和 Const?
要在 JavaScript 中使用变量,必须先声明该变量。在 ES6 之前,我们只能var使用 `<variable>` 来声明变量。从 ES6 开始let,const引入了 `<variable>` 和 `<variable>`,它们之间存在一些显著差异,需要了解。
差异
我们将从三个方面来分析它们之间的差异:
- 函数或代码块作用域
- 重新声明
- 重新定义
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
输出
0
1
2
3
4
5
定义:代码块作用域:代码块就是一段用花括号括起来的代码{ }。因此,当使用 `<br>` 声明变量时,该变量的let作用域仅限于该代码块内,不会泄露到外部。
for (let i = 0; i < 5; i++) {
console.log(i);
}
console.log(i); // the variable i is not accessible here
输出
0
1
2
3
4
console.log(i);
^
ReferenceError: i is not defined
Const:块级作用域:用 const 声明的变量const具有块级作用域,就像 let 一样,不能在作用域之外访问。
{
const i = 10;
console.log(i);
}
console.log(i);
输出
10
console.log(i);
^
ReferenceError: i is not defined
重新声明
变量:可以重新声明:使用 声明的变量可以在程序中的任何位置var再次使用 声明。var
var cat = "meow";
var cat = "psssss"; // no error
Let:不能重新声明:使用声明的变量let不能在其同一作用域内重新声明。
let dog;
let dog; // causes error
输出
let dog;
^
SyntaxError: Identifier 'dog' has already been declared
Const:不能重新声明:使用 Const 声明的变量const不能在其同一作用域内重新声明。
const lion;
const lion; // causes error
输出
const lion;
^
SyntaxError: Identifier 'lion' has already been declared
3.重新定义
变量:可以重新定义:定义与声明不同,因为定义会给变量赋值。
var dog = "boww";
dog = "voww"; // no error
令:可以重新定义:定义与声明不同,因为定义会给变量赋值。
let cat = "meow";
cat = "prrr"; // no error
Const:不能重新定义:这将导致错误。此错误仅适用于当前作用域。
const lion = "roar";
lion = "rooor"; // cannot redefine
输出
const lion = "roooor";
^
SyntaxError: Identifier 'lion' has already been declared
概括
如果你喜欢这篇文章,请点赞❤🦄并保存以备后用。如果你喜欢我的YouTube频道,请订阅:https://youtube.com/c/developerTharun
你或许会喜欢这个
文章已失效
文章已失效
作者:
