es6中let var const 的特点及区别

2023-10-29

   首先,var是定义一个变量常用的方法,与其相似的还有let和const 以下介绍他们三个的特点及不同:

一.var   

 var的用法很多,没有什么局限,可以对变量进行声明,例如:

                           

  注意:var,let,const 是js的关键词,需要写在script标签中                             

               特点:1.可以重复声明并赋值 

                          2.存在变量提升(见下文)

二.let   

   let用于对变量进行声明但要注意一些条件,再进行灵活运用,运用错误出现难以察觉的错误,

特点总结如下:(1)不允许重复赋值

                         (2)不存在变量提升

                         (3)暂时性死区(也叫临时性失区)

                         (4)块级作用域,下面对这四个特性进行解释

(1)不允许重复赋值:当你给一个变量已经用let声明并赋值的时候,不能再用let声明并赋值,即如下代码是错误的   

                                                    

         会报错

(2)不存在变量提升 变量提升:声明变量之前的代码中就已经存在此变量,但是数值并没有赋值,该变量的值此时为undefined。例如,var的变量提升(如下代码)

  控制台输出的值是undefined并不会报错,let不允许变量提升会报错例如如下代码就是错误的:

   会报错

(3)暂时性死区(也叫临时性失效区):当一个函数外部有一个变量被声明而且被赋值 (假设变量是a),那么在函数中如果出现了let定义a并赋值在console.log,alert等代码的下边时就会报错:如以下错误代码

会报错 

          原因: 一般情况在函数中如果找不到这个变量,就会去全局找,但是如果当let对一个变量赋值,当找不到的时候不会去全局找,而是直接会报错

   (4)块级作用域:let声明的变量只在当前作用域可以访问到

    错误例子如下:

 会报错:

        let a变量此代码的作用域为花括号里边,在外边不能访问到

三.const

  const与var和let不同的是。const用来声明常量,注意:let具有的4个特点const全都具有,除此之外,const只允许赋值一次不允许重复更改,错误代码如下:

  会报错      

 但是值得注意的是const更改的规则为:基本数据类型的数值不能改变,引用数据类型的指针指向地址不能改变(基本数据类型:数字,布尔,字符串,null,undefined,symbol)(引用数据类型如:对象,数组)

即以下代码是正确的:

 执行结果:

     但是如下这样写是错误的,这样等于重新定义一个数组(重新new了一个地址),再赋值给a,所以会报错 

会报错 

以上就是行星为大家总结的 es6中let var const 的特点及区别,如果哪里不对,欢迎大佬前来指错

思考题:

两个图片所显示的代码段运行结果相同吗?结果都是什么?为什么会这样?欢迎大家评论,检测大家所学。 

  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

es6中let var const 的特点及区别 的相关文章

随机推荐

  • Mysql事务---MVCC详解

    Mysql数据库事务隔离级别 SQL 标准定义了四个隔离级别 READ UNCOMMITTED 读取未提交 事务的修改 即使没有提交 对其他事务也都是可见的 事务能够读取未提交的数据 这种情况称为脏读 READ COMMITTED 读取已提
  • Jetpack学习-1-Lifecycle+Activity源码分析

    解耦是软件开发亘古不变的追求 而Lifecycle正是这一名言的体现 Android开发过程中 有些功能不可避免与页面的生命周期关联 LifeCycle作为Jetpack中具有生命周期感知姓的组件 通过感知activity fragment
  • CVE-2022-22963:Spring Cloud Function SpEL 远程代码执行漏洞

    读者需知 本文仅供学习使用 由于传播和利用此文所造成的损失均由使用者本人负责 文章作者不为此承担责任 简介 SpringCloud Function作为SpringCloud家族成员最早在2017年提出 旨在为快速发展的Serverless
  • 以太坊开发文档09 - javascriptApi

    Web3 JavaScript appAPI 为了让您的应用程序能够在以太坊上工作 您可以使用web3 js库web3提供的对象 在底层 它通过RPC调用与本地节点通信 web3 js与任何暴露RPC层的以太坊节点一起工作 web3包含et
  • Vue3 isProxy

    isProxy 检查一个对象是否是由 reactive 或者 readonly 方法创建的代理 实例
  • [计算机毕业设计]深度学习的图标型验证码识别系统

    前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大
  • OpenGL ES 3.0 开发(一)

    什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems 是三维图形应用程序接口 OpenGL 的子集 本质上是一个跨编程语言 跨平台的编程接口规范 主要应用于嵌入式设备 如手机 平板等 由科
  • SpringBoot websocket + java swing 实现大文件上传与下载

    使用场景 无法直接登录服务器上传文件 使用web端上传超大文件出现超时 实现原理 上传 server端与client端建立websocket连接 client将待传文件进行分块 然后将文件的相关信息 文件名 md5值 分块大小 总块数 当前
  • 角谱衍射计算

    角谱衍射 角谱衍射计算 D F F T D FFT D FFT 即采用两次傅里叶变换 原始公式和 S
  • IP协议相关技术

    前言 其实我们在上网的时候并不是直接使用IP地址 同样IP地址还不方便记忆 这样我们就需要IP相关的技术来帮助我们通信 DNS 一开始人们使用TCP IP世界中的主机识别码来转换成具体的IP地址 这样人们就可以直接使用主机名称 但是随着网络
  • Chatglm2-6b模型相关问题

    Chatglm2 6b模型相关问题 1 Chatglm2 6b模型p tuning后推理答非所问 2 ChatGLM2 6b ptuning 3 ChatGLM2 6b部署 1 Chatglm2 6b模型p tuning后推理答非所问 据C
  • python词云 小说《庆余年》

    一 概述 使用jieba分词和wordcloud生产 小说的词云库 源码地址 https github com jw star pythonDemo tree master E5 BA 86 E4 BD 99 E5 B9 B4wordclo
  • HTML第一次作业

    什么是web前端 web前端就是由多种技术制作的 用来给用户展示的网页 也叫网站的前台部分 包括的技术有html css javascript jQueery bt等 什么是HTML hyper text maekuo language 骨
  • DVWA靶场存储型XSS漏洞实验

    文章目录 文章目录 前言 一 XSS基础 1 什么是XSS 2 XSS漏洞原理 3 XSS漏洞成因 4 XSS漏洞危害 5 存储型XSS漏洞原理 6 存储型XSS与反射型XSS的区别 二 DVWA靶场实战 1 存储型XSS漏洞利用 LOW
  • 求逆矩阵的常用三种方法

    1 待定系数法 矩阵A 1 2 1 3 假设所求的逆矩阵为 a b c d 则 这里写图片描述 从而可以得出方程组 a 2c 1 b 2d 0 a 3c 0 b 3d 1 解得 a 3 b 2 c 1 d 1 2 伴随矩阵求逆矩阵 伴随矩阵
  • node之Buffer(缓冲区)

    Node js Buffer 缓冲区 JavaScript 语言自身只有字符串数据类型 没有二进制数据类型 但在处理像TCP流或文件流时 必须使用到二进制数据 因此在 Node js中 定义了一个 Buffer 类 该类用来创建一个专门存放
  • 矢量绘图UI设计Sketch

    Sketch是一款Mac操作系统上常用的矢量图形编辑软件 旨在帮助用户设计和创建高质量的UI和UX界面 软件安装 Sketch 中文 以下是Sketch软件的一些主要特点 矢量工具和对象 Sketch提供了多种画线 填充 阴影 文本和形状等
  • UE4 部分命令知识点梳理

    UE4 部分命令知识点梳理 1 r SSGI Enable 0 1 屏幕空间 全局光照关闭 开启 2 DFO 距离场AO 指数指的是AO强度 遮挡最大距离 指的是距离场AO影响的最大距离 3 r forcelod 1 0 1 等 设置场景模
  • CSS中clear:both的作用

    clear both意思就是清除浮动 例如我们设置了三个div如下
  • es6中let var const 的特点及区别

    首先 var是定义一个变量常用的方法 与其相似的还有let和const 以下介绍他们三个的特点及不同 一 var var的用法很多 没有什么局限 可以对变量进行声明 例如 注意 var let const 是js的关键词 需要写在scrip