探索ES6之let、const

简介: ECMAScript 6 是JS的一个新的语法标准。随着nodejs的发展以及Babel等ES6编译器的兴起,ES6已逐渐被广泛使用。在本文中,我们将对ES6的let和const这两个新的定义变量关键字进行详解。
ECMAScript 6 是JS的一个新的语法标准。随着nodejs的发展以及Babel等ES6编译器的兴起,ES6已逐渐被广泛使用。在本文中,我们将对ES6的let和const这两个新的定义变量关键字进行详解。

我们先来说说let。
在ES6出现之前,JS定义变量的关键字是var。常用的方式:var a = 12;

现在,我们用let定义一个变量。其方式一样:let a = 12;
讲到这里,大家会问let与var有什么区别呢?为了运行ES6代码,下面的例子代码在node环境中运行。(注:实现ES6运行环境的方法很多,在此不再赘述。)

区别一,let声明的变量具有块级作用域,而var声明的变量只有函数作用域。举个栗子:
分别用var和let在代码块中声明一个变量,在代码块外访问这个变量。结果如下:
代码:
{
var a=12;
}
console.log(a);
执行结果:
变量a为全局变量,在代码块外边仍然能访问。

代码:
{
let b=12;
}
console.log(b);
执行结果:
在代码块外边不能访问变量b,显示错误:b is not defined

区别二,let不允许重复声明同一个变量,而var可以重复声明同一个变量。举个栗子:
代码:
var a =1;
var a = 2;
console.log(a);
执行结果:
变量a的第二个值覆盖第一个值。

代码:
let b=1;
let b=2;
console.log(b);
执行结果:
出现错误提示,变量b已经被声明过了。

为了更好的理解let的新特性,我们可以拿选项卡这个功能来说明一下。
以前,前端人员在做选项卡时,经常会碰到如何获取每一项按钮的序号问题。通常,我们会用封闭空间的方式来实现。代码如下:

执行结果:

现在,有了let之后,我们可以更简洁的实现这个功能(目前,let关键字已被主流浏览器支持,可以直接使用
)。代码如下:

执行结果:

let声明的变量自身具有块级作用域,相当于一个匿名函数立即调用,可以直接实现这个功能。let的新特性是不是很好用?*。٩(^㉨^*)و*,大家可以勇于尝试一下。

平时,大家在做项目中肯定会遇到自己声明的非常重要的变量被污染的问题,由此引出的BUG一般是非常难排查的,非常影响团队的开发效率。即便使用命名空间等一些常用方式也难以避免。那ES 6给出解决方法了吗?答案当然是肯定的。ES6推出的const关键字就是用于声明不可修改的一些常量。举个栗子:

const a=12; //声明一个常量a

a=13; //修改常量a

console.log(a); //打印常量a

执行结果:
出现错误提示,常量a不能修改。

由于const声明的常量不能修改,因此声明的常量最好有初始值(没有初始值的常量相当于没用的常量)。另外,跟let一样,const声明的常量也不允许重复声明。举个栗子:
const a = 12;
const a = 13;
console.log(a);

执行结果:
出现错误提示,常量a不能重复声明。

至此,ES6的let、const就介绍到这里,若有不足之处,欢迎指正!

欢迎关注个人公众号,查看更多好文。1.gif
3c9443f5671a70732ca1e6ee8cdd027439c92725


相关文章
|
4月前
|
SQL 人工智能 安全
Microsoft SQL Server 2025 CU4 发布 (2026 年 4 月累积更新)
Microsoft SQL Server 2025 Cumulative Update #4 (2026 年 4 月安全更新)
414 0
Microsoft SQL Server 2025 CU4 发布 (2026 年 4 月累积更新)
|
4月前
|
Windows
PE启动盘制作与启动教程 Windows版:NTFS格式化+一键制作+双模式引导指南
本教程指导如何将≥8GB U盘格式化为NTFS,并使用PE工具箱制作WinPE启动盘:解压工具、以管理员身份运行,选择U盘写入PE系统,完成后生成EFI隐藏分区,支持系统维护与重装。(239字)
1196 0
|
IDE Linux 开发工具
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
IDEA 目前已经更新到最新的 2022.2.2 版本了,群里的小伙伴私聊问我,为啥之前 2021.3.1 的激活套路对新版本 2022.2.2 不管用了,是个什么情况? 很显然,IDEA 官方发现了这种破解路数,新版本加入了更严厉的反制破解。所以说,小伙伴们破解成功了以后,尽量不要升级 IDEA, 不然大概率又不行了。 好在z大又更新了新的补丁,针对最新版本,这边笔者亲测可行,仅以下文记录本人 IntelliJ IDEA 2022.2.2 版本的激活破解到 2099 年的全过程,步骤非常详细,跟着图文来就行~
71605 3
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
|
Java 编译器 数据安全/隐私保护
Java 重写(Override)与重载(Overload)详解
在 Java 中,重写(Override)和重载(Overload)是两个容易混淆但功能和实现方式明显不同的重要概念。重写是在子类中重新定义父类已有的方法,实现多态;重载是在同一类中定义多个同名但参数不同的方法,提供多种调用方式。重写要求方法签名相同且返回类型一致或为父类子类关系,而重载则关注方法参数的差异。理解两者的区别有助于更好地设计类和方法。
1392 2
|
监控 NoSQL 数据管理
电脑监控软件中的NoSQL数据库管理
这篇文章介绍了在电脑监控软件中使用NoSQL数据库管理非结构化数据。通过Python示例展示了如何使用MongoDB客户端连接数据库、插入单条或多条数据、查询数据(包括所有、特定用户和时间范围)、更新数据以及删除数据。此外,还提供了一个简单的数据监控和自动提交到网站的脚本,以每分钟检查一次新活动并发送到指定URL。这些示例有助于理解和优化监控软件中的数据处理。
276 3
|
jenkins 持续交付 开发工具
|
算法 API 调度
p-queue 源码解读
前言在钉钉表格的开放场景中,需要对用户在沙箱中执行的操作进行合理的调度,我们选择了 p-queue 这个简洁但功能强大的工具库。最近需要对不同类型的任务进行更复杂的并发调度,希望通过学习源码的方式,掌握其中的核心逻辑,确保业务功能的顺利实现。什么是 p-queuep-queue 是一个异步队列管理库。对于需要控制执行速度或数量的异步操作很有用,比如:与 REST API 交互或执行 CPU / 内
967 0
|
设计模式 Java
一环扣一环:解析Java设计模式中的责任链模式
在软件开发领域,设计模式是一组经过验证的最佳实践方法,用于解决各种常见问题。责任链模式是一种行为型设计模式,其目标是构建一条对象链,每个对象都能够处理请求并将其传递给下一个对象。在本文中,我们将深入了解责任链模式的核心思想、应用场景以及它在Java中的实际运用。
363 0
|
XML 前端开发 数据格式
Python高阶教程—BeautifulSoup详讲
BeautifulSoup简介: Beautiful Soup 简称 BS4(其中 4 表示版本号)BeautifulSoup是一个Python库,用于从HTML和XML文件中提取数据。它提供了一些简单的方式来遍历文档树和搜索文档树中的特定元素。 BeautifulSoup可以解析HTML和XML文档,并将其转换为Python对象,使得我们可以使用Python的操作来进行数据提取和处理。它还可以处理不完整或有误的标记,并使得标记更加容易阅读。
900 0
|
存储 编解码 芯片
Win系统 - 关于GPU,你需要长的“姿势”
Win系统 - 关于GPU,你需要长的“姿势”
393 0
Win系统 - 关于GPU,你需要长的“姿势”

热门文章

最新文章