迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

JavaScript 中 let 和 var 的区别

作者:迹忆客 最近更新:2024/03/20 浏览次数:

这篇教程文章解释了 JavaScript 中 varlet 关键字的实际工作方式以及它们的主要区别。

与其他编程语言一样,JavaScript 具有用于存储值和数据的变量。在 JavaScript 中,我们同时使用 letvar 关键字来声明变量。

有些人认为这两个关键字可以互换使用,但事实并非如此。两者之间的主要区别可能会导致我们的编程出现重大错误。

在 ES6 更新到 JavaScript 之前,只有一种方法可以在 JavaScript 中声明变量和常量。但是自从 ES6 更新以来,我们现在有了 letconst 关键字用于声明变量和常量。

letconst 关键字添加到 JavaScript 的主要原因之一是使用 var 关键字声明的变量不是声明它的块。相反,它的范围仅限于函数,导致一些编程问题,我们将在文章的后半部分讨论。

让我们看一下这段代码以便更好地理解。

function example() {
  for (let i = 0; i < 10; i++) console.log(i);

  console.log(i);
}
example();

在这个代码段中,我们在 for 循环中声明了变量 i 并使用 console.log 来获取变量的值。我们没有在 for 循环之后使用 {} 括号,所以 for 循环的块只是下一行。

但是,我们使用了额外的 console.log 来显示 i 的值。但是第二个 console.log 将无法获取变量 i 的值,并会显示以下错误:

ReferenceError: i is not defined

发生此错误是因为变量 i 的范围仅适用于 for 循环块,并且无法在块外访问。因此,通过这种方式,我们不能使用块外的变量,因为使用 let 关键字声明的变量的范围仅限于块。

要查看 letvar 之间的区别,请查看以下代码段:

function example() {
  for (var i = 0; i < 10; i++) console.log(i);

  console.log(i);
}
example();

在上面的代码中,我们可以观察到我们使用了 var 关键字代替了 let 关键字。

虽然在前面的示例中保留了相同的两个 console.log,但在这种情况下,第二个 console.log 也将有一个输出。那么,让我们看看输出:

0
1
2
3
4
5
6
7
8
9
10

第一个 console.log 打印从 09 的值,条件 i<10 也是如此。

但是我们可以将 10 视为肯定不是来自第一个 console.log 的输出。因此,这个 10 是第二个 console.log 输出。

这里的问题是,变量 i 应该在其块内使用,但由于块外的 console.log 访问了它,这意味着它已经超出了它的范围。

它证明了 letvar 关键字用于声明变量,但 var 关键字声明的变量在其范围方面仅限于块。但是,var 关键字的作用域仅限于函数。

如果我们在函数外部声明一个变量,letvar 之间还有另一个主要区别。如果我们在函数外部使用 let 关键字,则会创建一个无法从外部访问的局部变量。

但是如果我们使用 var 关键字,它就会变成一个全局变量。让我们看一下下面的代码段:

var color = 'blue';
let model = '2021';

在此代码段中声明了两个变量,一个使用 let 关键字,另一个使用 var 关键字。因此,使用 var 关键字声明的变量已成为全局变量,并将附加到浏览器中的 window 对象。

在浏览器中,我们有一个窗口对象,它有很多属性和方法,而且非常复杂。前端应用程序开发人员广泛了解窗口对象,因为他们经常使用它。

每次我们在函数外使用 var 关键字时,该变量都会成为全局变量,并与 window object 关联,并且可以从 window object 访问。在这种情况下,它将被访问为 window.color 将显示 color 变量内的值,即 blue

我们使用第三方库并使用 var 关键字在函数外部声明变量。如果第三方库有一个与我们的变量同名的变量,该变量将覆盖我们的变量。

这是我们避免向窗口对象添加任何内容的另一个原因;我们的意思是在这种情况下避免使用 var 关键字。

上一篇:JavaScript 指针

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

JavaScript 指针

发布时间:2024/03/20 浏览次数:166 分类:JavaScript

JavaScript 没有明确的方法来定义指针。它允许在对象之间传递值和引用,但不能显示引用。本文将介绍在 JavaScript 中定义指针的好方法。

JavaScript 元组示例

发布时间:2024/03/20 浏览次数:166 分类:JavaScript

在 JavaScript 语言中,元组是具有不可变特性的数组类型。我们可以使用单个变量访问元组,该变量是数组的一种。

JavaScript 右键菜单

发布时间:2024/03/20 浏览次数:123 分类:JavaScript

本文展示了如何在 JavaScript 中向网页添加自定义右键菜单。

使用 JavaScript 编码 HTML

发布时间:2024/03/20 浏览次数:83 分类:JavaScript

本教程将教你如何使用不同的方法对 HTML 字符串进行编码。这些方法的共同点是字符串替换,它替换了具有潜在危险的字符。

在 JavaScript 中 use strict

发布时间:2024/03/20 浏览次数:56 分类:JavaScript

在本文中,学习 JavaScript 中的 use strict 特性。我们将通过不同的示例了解如何在 JavaScript 代码语句中创建和执行 use strict 关键字。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便