el 能否定义作用域变量_JavaScript中的变量声明和作用域(一)

9f3f011db137028ea48493ce570f76e6.png

变量是任何编程语言的基本块之一,每种语言定义我们如何声明变量以及如何与变量交互的方式可以成就或毁掉一门编程语言。这意味着每个开发人员都应该能够理解如何有效地使用变量、它们的规则和特性。在今天的教程中,我们将学习如何在JavaScript中声明、交互和作用域变量。我们将介绍新的概念和重要的JavaScript关键字,如var、let和const。

声明变量

现在JavaScript有三个不同的关键字来声明一个变量——var、let和const。每一种都有自己的特性。让我们首先为这三个关键字制作一个简单的比较表,然后深入研究。

38cc083db0242e597555eb242623686b.png

变量作用域

JavaScript中的作用域是指决定变量的可访问性(可见性)的代码的上下文(或部分)。在JavaScript中,我们有两种范围,本地的和全局的。虽然局部范围可以有不同的含义。

让我们通过一些示例来了解函数的作用域是如何定义的。假设你定义了一个变量message:

20d7fda90a65f3fd75777167cfa95fb2.png

在console.log中打印变量message,其值为Hello World。这一点毫无疑问,但是如果我们在声明变量的地方稍微改变一下会发生什么呢?

13ec7f576c1c9bdfaf0aaacaa2118c9b.png

if语句创建了一个局部块作用域,由于我们使用了' const ',所以变量只针对该块作用域声明,不能从外部访问。

块范围

块基本上是一段代码(零个或多个语句),由一对花括号分隔。

正如我们已经讨论过的,let和const的使用允许我们定义存在于块作用域中的变量。接下来,我们将通过使用不同的关键字来生成新的作用域来构建非常相似的示例:

056acd954422210cbc0a05aaea4e7279.png

让我们解释一下这个问题,因为起初看起来可能有些奇怪。在我们的外部范围中,我们定义的变量x1值为1。然后,我们仅使用花括号就创建了一个新的块作用域,这很奇怪,但在JavaScript中完全合法,在这个新作用域中,我们创建了一个新变量(与外部作用域的变量分开),也命名为x1。这是一个全新的变量,仅在该范围内可用。

现在相同的示例具有命名范围:

ffdc1f8c8f8f352b20c006114259e667.png

不要执行下面的代码;不要执行下面的代码;不要执行下面的代码;

cd9f943c865eafb4cba97da499feb096.png

您能猜出上面的代码怎么了吗?如果运行它会发生什么?让我解释一下, x3正如在外部范围中声明的用于while比较一样 x3 === 1,通常在while语句内部,我将能够重新分配 x3一个新值并退出循环。但是,由于我们在x3块范围内声明了一个新值,因此无法再x3从外部范围更改,因此,“ while”条件将始终评估为true产生无限循环,该循环会挂起您的浏览器,或者如果您使用的是在NodeJS上运行它的终端将打印很多2。

除非实际重命名这两个变量,否则修复此特定代码可能会很棘手。

到目前为止,在我们的示例中,我们使用的是const,让我们用var试试相同的代码会发生什么

f7cb088ed55fa5c17b6d8b8014c75933.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值