ES6:var 、const、let的使用和区别

news2024/11/24 3:04:34

前言

本文主要介绍了ES6中var、const、let的使用和区别

基本介绍

let

  • let声明变量

const

  • const :声明常量
  • const声明的常量可以修改,但不能重新赋值

如:以下代码是正确的:

//引用数据类型
const info ={
	name:'Candy'
};
info.name='June';

而下面的代码是错误的:

//基本数据类型
const test ='hello';
test='world';

var

  • 声明变量
  • let替代了var去声明变量

三者的区别

1、重复声明

  • 重复声明:即已经存在的变量或常量,又声明了一遍
  • var允许重复声明,而let、const 不允许
  • 举例:
function func(a){
	let a=1;
}
func();

上述的代码会报错,因为变量a进行了2次声明,一次是在函数的形参处,另一处是在函数的内部进行了变量a的声明,因此会报错。

2、变量提升

  • var会提升变量的声明到当前作用域的顶部
  • 举例
    代码1:
console.log(a)
var a=1;

因为var会提升变量的声明到当前作用域的顶部,因此代码1等价于:

var a;
console.log(a)
a=1;

因此输出结果为: undefined

3、暂时性死区

  • 只要作用域内存在let、const,它们所声明的变量或常量就自动“绑定”这个区域,不再受到外部作用域的影响
let a = 2;
function func){
	console.log(a)
	let a=1;
}
func();

分析:上述代码会报错

  • 首先,函数只有被调用的时候才会形成函数作用域;
  • 在函数里面声明了变量let a,因此变量a就会自动绑定func函数的作用域;
  • 执行函数里面的console语句的时候,由于变量a已经绑定了函数作用域,因此不再受到外部作用域的影响,即不使用函数外面的变量a的值,而输出a的时候还没对a进行声明和赋值,因此会报错。

4、块级作用域

  • var 没有块级作用域,而 let、const有块级作用域
  • 举例
    代码1:
for (var i=0;i<3;i++){
	// console.log(i)
}
console.log(i)

结果:
在这里插入图片描述

代码2:

for (let i=0;i<3;i++){
	// console.log(i)
}
console.log(i)

结果:
在这里插入图片描述
分析:
上述代码的块级作用域是指函数花括号之间的区域;由于var 没有块级作用域,因此在函数外的console语句能够正常执行;而 let、const有块级作用域,因此函数外的console语句会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT-4国内有免费平替吗?

免费/平替永远是最贵的 就如同我们生活中买口红一样&#xff0c;总想找到平替&#xff0c;但永远比不上看中的那只&#xff01; 但在寻找平替过程中 花出去的时间、金钱成本都是翻倍的。 那么GPT-4呢&#xff1f; GPT-4优于GPT-3.5闪光点&#xff0c;想必大家都十分清楚 不…

基于springboot自动排课系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SpringBoot 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;…

云计算安全

前言 什么是云计算&#xff1f; 云计算就是一种新兴的计算资源利用方式&#xff0c;云计算的服务商通过对硬件资源的虚拟化&#xff0c;将基础IT资源变成了可以自由调度的资源池&#xff0c;从而实现IT资源的按需分配&#xff0c;向客户提供按使用付费的云计算服务。用户可以…

帽子设计作品——蒸汽朋克的乌托邦,机械配件的幻想世界!

蒸汽朋克是由蒸汽steam和朋克punk两个词组成&#xff0c; 蒸汽代表着以蒸汽机作为动力的大型机械&#xff0c;而朋克则代表一种反抗、叛逆的精神。 蒸汽朋克的作品通常以蒸汽时代为背景&#xff0c;通过如新能源、新机械、新材料、新交通工具等新技术&#xff0c;使画面充满想…

基于OpenCV和PyQt5的跳远成果展示程序

基于OpenCV和PyQt5的跳远成果展示程序 近年来&#xff0c;体育运动越来越受到人们的关注&#xff0c;其中跳远是一项备受瞩目的运动项目。为了更好地展示运动员的跳远成果&#xff0c;本文将介绍一种基于OpenCV和PyQt5的跳远成果展示程序实现方法。 本文的跳远成果展示程序主…

基于SSM的校园办公管理系统的设计与实现(源码完整)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据你想解决的问题&#xff0c;今天给…

【TES641】基于VU13P FPGA的4路FMC接口基带信号处理平台

板卡概述 TES641是一款基于Virtex UltraScale系列FPGA的高性能4路FMC接口基带信号处理平台&#xff0c;该平台采用1片Xilinx的Virtex UltraScale系列FPGA XCVU13P作为信号实时处理单元&#xff0c;该板卡具有4个FMC子卡接口&#xff08;其中有2个为FMC接口&#xff09;&#xf…

Sui如何进行独立审计

Sui及其生态项目的第三方审计对于网络的安全至关重要。 类似于Sui这样的L1区块链必须使用多重有效的措施&#xff0c;来确保项目保持尽可能高的安全级别。Sui流程中的一个关键环节就是使用第三方安全审计。了解Sui的安全状态及其维护方式对整个社区来说很重要&#xff0c;因此…

【JavaSE】Java基础语法(二)

文章目录 1. ⛄类型转换1.1 &#x1fa82;&#x1fa82;隐式转换1.2 &#x1fa82;&#x1fa82;强制转换 2. ⛄运算符2.1 &#x1fa82;&#x1fa82;算术运算符2.1.1 算术运算符2.1.2 字符的“”操作2.1.3 字符串的“”操作2.1.4 数值拆分 2.2 &#x1fa82;&#x1fa82;自增…

SQL注入 - Part 2

SQL注入 - Part 2 1.sql注入自动化工具--sqlmap配置环境变量/快捷方式一些sqlmap的常用语句前置SQL知识batch批量注入 2.sql注入靶场——sqlilabs3.布尔盲注4.基于时间的盲注5.基于报错的注入总结 1.sql注入自动化工具–sqlmap 配置环境变量/快捷方式 最终效果&#xff1a; …

数据高效转储,生产轻松支撑

在使用WINDOWS或智能手机的时候&#xff0c;经常会遇到存储空间不足的问题&#xff0c;鲜有人会打开文件管理系统自己逐个清理&#xff0c;不仅因为底层的系统文件繁多操作耗时&#xff0c;更有其操作专业度高、风险高的问题。这时我们往往会求助各种各样的清理大师&#xff0c…

2个月拿到华为offer,身为00后的我拿30K没问题吧?

背景介绍 美本计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三回国的时间比较短&#xff0c;于是找的实习是在一家初创公司里面做全栈。 本人面…

网络安全CTF工具合集

各种在线工具以及工具整合 CTF资源库|CTF工具下载|CTF工具包|CTF工具集合 逆向工程: GDB – http://www.gnu.org/software/gdb/download/ IDA Pro – Download center Immunity Debugger – http://debugger.immunityinc.com/ OllyDbg – OllyDbg v1.10 radare2 – radare Hop…

MySQL基于成本的优化

MySQL的成本是什么&#xff1f;MySQL在执行一个查询的时候&#xff0c;其实是有多种不同的方案的&#xff0c;但是最终会选择一种成本比较低的方案&#xff0c;那么这个成本都体现在什么地方&#xff1f;如何计算&#xff1f; MySQL的成本 I/O成本 &#xff1a; 把数据从磁盘…

Python 萌新 - 花10分钟学爬虫

前言 Python 新手入门很多时候都会写个爬虫练手&#xff0c;本教程使用 Scrapy 框架&#xff0c;帮你简单快速实现爬虫&#xff0c;并将数据保存至数据库。在机器学习中数据挖掘也是十分重要的&#xff0c;我的数据科学老师曾经说过&#xff0c;好算法不如好数据。 Python助学…

理光打印机连接电脑后不打印的原因及解决方法

理光打印机在使用时&#xff0c;可能会出现正常连接上理光打印机却没有反应的情况&#xff0c;出现无法打印的情况&#xff0c;下面&#xff0c;驱动人生为大家带来理光打印机连接后不打印的解决方案。 驱动人生分析&#xff0c;一般遇到理光打印机连接后不打印的情况&#xf…

第一行代码 第十一章 基于位置的服务

第11章 基于位置的服务 在本章中&#xff0c;我们将要学习一些全新的Android技术&#xff0c;这些技术有别于传统的PC或Web领域的应用技术&#xff0c;是只有在移动设备上才能实现的。 基于位置的服务&#xff08;Location Based Service&#xff09;。由于移动设备相比于电脑…

Prompt Engineering | 编写prompt的原则与策略

&#x1f604; 为了更好地与大模型&#xff08;e.g. chatgpt&#xff09;更好的交流&#xff0c;一起来学习如何写prompt吧&#xff01;&#x1f604; 文章目录 1、简介2、编写prompt的原则与策略2.1、编写清晰、具体的指令2.1.1、策略一&#xff1a;使用分隔符清晰地表示输入的…

js 解析map (处理后端返回对象拼接)

返回的数据 需要的展示效果 解析如下&#xff1a; { title: ‘销售属性’, align: ‘left’, dataIndex: ‘xsshuxing’, width: 200, render(value, record) { let keyValue ‘’; { for (var key in record.otherAttr) { console.log(‘属性&#xff1a;’ key ‘,值&…

EIS-Net

我们提出了一种新的领域泛化框架&#xff08;称为EISNet&#xff09;&#xff0c;该框架利用来自多源领域图像的外在关系监督和内在自我监督学习&#xff0c;学习如何同时在不同领域中进行泛化。 具体而言&#xff0c;我们采用多任务学习范式&#xff0c;通过特征嵌入来构建我…