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

JavaScript 变量

JavaScript 变量

在编程中,变量是存储数据的命名内存位置。用户可以通过变量名检索这些数据。有些编程语言允许将相同的名称分配给不同的变量,而有些语言则严格禁止这样做

允许将同一个变量名重新赋值给另一个数据的编程语言称为弱类型语言,而禁止这种做法的编程语言称为强类型语言

JavaScript 是一种弱类型语言的一个例子

所有截图均来自Firefox 71.0及其开发者工具。Firefox 71.0 中一个值得一提的功能是控制台中的多行代码编辑器。


在 JavaScript 中,可以使用三个关键字声明变量。它们是:

  • var
  • let
  • const

它们实际上做的是同一件事,但存在一些巨大的差异

使用关键字声明的变量var是 JavaScript 中声明变量的“传统”方式,你仍然可以在现代代码中找到它们,一些开发人员仍然使用它们,而另一些开发人员则反对使用它们。

在 Firefox 71.0 开发者工具中可以看到 ReactJS 中使用的 var 关键字
在 Firefox 71.0 开发者工具中可以看到 ReactJS 中使用的 var 关键字

现在,你可能会好奇为什么我说 ` varvar` 关键字是一种“传统”的方式,这是因为它的行为方式。在 ES6(ES2015)之前,` varvar` 关键字是 JavaScript 中声明变量的唯一方法。`var`let关键字是在 ES6 中引入的,目的是为了解决使用 `var` 声明变量时出现的一些问题var。我们稍后会讨论这些问题let

你可能会问:你指的是哪种行为?

这种行为称为函数提升(hoisting)。从初学者的角度来看,函数提升是一个高级的 JavaScript 概念,但如果你在开始学习 JavaScript 时了解它,将会大有帮助。

我们先简单谈谈,如果您决定深入学习,我们会提供额外的学习资源。

提升是指无论变量在哪里声明,都会将其移动到定义它的作用域的顶部

这是基本定义。我们来看一些代码。

请看下图。我们a在声明变量之前就调用了它,但由于变量被提升,10代码执行后我们仍然能获取到它的值。

Firefox 71 开发者工具中所示的变量提升

请注意,我已经将开发者工具停靠在一个单独的窗口中。如果您一直按照本系列教程操作,我相信您应该能够做到这一点。

这只是一个简单的例子,足以让你入门。

这种特殊的提升行为也适用于函数,我们将在本系列的后面部分看到。

如果您想深入了解起重技术,请阅读lydia hallie的以下帖子。


关键字let是在 ES6(ES2015)中引入的。任何使用let关键字声明的变量在创建之前都不能被调用。

var我们将通过更改为来重新审视之前的例子let

JavaScript 中的变量声明

执行代码时,你会收到一个错误信息,提示ReferenceError: can't access lexical declaration 'a' before initialization

Firefox 开发者工具中显示引用错误

但是,在源代码中声明变量之后,let您可以为其赋另一个值,代码也能正常执行。

Firefox 开发者工具中显示的变量声明

const另一方面,这又不允许。


关键字const是在 ES6 (ES2015) 中引入的let,与 不同,let你不能给用 声明的变量赋另一个值const

如果尝试将另一个值赋给用 `std::vector` 声明的变量,const将会收到invalid assignment类型错误。

Firefox 开发工具中显示类型错误

JavaScript 变量远不止我们在这里讨论的这些,但这足以让你入门。

接下来是数组。

文章来源:https://dev.to/ziizium/javascript-variables-3do