ECMAScript 6(简称ES6)是JavaScript语言的下一代标准,于2015年6月正式发布,也称ECMAScript 2015。

ES6的好处

ES6的出现为我们前端带来了很多方便之处,以前用js几十行才实现的一个功能,ES6几行代码就能简单的实现,ES6新增的一些特性,改变了很多弊端之处,比如新出现的let、const,实现了块级作用域功能,减少了以前var的全局变量,箭头函数代替词法作用域的"this" 等等,在这里就不再做更多的举例子,想了解更多请参考 https://www.w3cschool.cn/ecmascript/pgms1q5d.html,今天主要跟大家一起了解一下var、let、const之间的区别

let

let是ES6新增的命令,用来声明变量,跟var声明变量一样。但是它俩有很大的区别。

  • let、const声明的变量仅在块级作用域内有效,var 声明变量是全局的,没有块级作用域功能
  • let 、const 不存在变量提升 , var 存在变量
  • let 、const不能在同一块级作用域内重复申请

用let定义变量,运行代码如下:

 const arr = [1, 2, 3, 4]for (let i = 0; i < arr.length; i++) {console.log(arr[i])}console.log(i);


以上报错i未定义,说明let定义变量i,只在所在的块作用域内起作用

var 定义变量,运行代码如下:

var arr = [1, 2, 3, 4]for (var i = 0; i < arr.length; i++) {console.log(arr[i])}console.log(i);


以上运行结果说明,var 定义变量 没有块级作用域,i在块级作用域照样可以输出结果
其实var在函数内命名的变量是只在整个函数作用域内起作用,出了这个函数作用域就不能用了,例如下面

 function testVar () {var i = 2console.log('函数内:' + i)}testVar()console.log('函数外:' + i)


很明显在函数外输出变量i的时候,报i未定义,var在函数内命名的变量是只在整个函数作用域内起作用

let不像var那样会发生“变量提升”现象。所以,变量一定要在声明后使用,否则报错。
运行代码如下:

 console.log(arg1)console.log(arg2)var arg1 = 'test'let arg2 = 'test2'


变量arg1用var命令声明,会发生变量提升,即脚本开始运行时,变量arg1已经存在了,但是没有值,所以会输出undefined。变量arg2用let命令声明,不会发生变量提升。这表示在声明它之前,变量arg2是不存在的,这时如果用到它,就会抛出一个错误。

var 重复申明变量的运行结果:

 var arg1 = 'test'console.log('var第一次申明:' + arg1)var arg1 = 'test2'console.log('var第二次申明:' + arg1)


let 重复声明变量代码

let  arg2 = 'test'
console.log('let第一次申明:' + arg2)
let  arg2 = 'test2'
console.log('let第二次申明:' + arg2)


let在同一块作用域内不能重复声明变量,var 可以重复声明

const

const与let上面特点一样,但是也有不同点,let声明的是变量,const声明的是常量,只读,修改值会报错,const保存的是内存地址,可以给对象或数组添加属性或元素,但是不能重新复写。
想要了解更多,请扫描二维码

轻松弄懂var、let、const之间的区别相关推荐

  1. 轻松弄懂var、let、const之间的区别(一看就懂)

    ES6的好处 ES6的出现为我们前端带来了很多方便之处,以前用js几十行才实现的一个功能,ES6几行代码就能简单的实现,ES6新增的一些特性,改变了很多弊端之处,比如新出现的let.const,实现了 ...

  2. 电脑自动关机是什么原因?为什么电脑会自动关机?轻松弄懂

    电脑作为很多小伙伴学习.办公.娱乐的工具.在生活中已然是不可或缺的一部分,很多小伙伴在使用电脑的过程中,有时会碰到电脑自动关机的情况.电脑自动关机是什么原因?为什么电脑会自动关机?别担心,今天小编这篇 ...

  3. 台式电脑怎么连wifi,1分钟轻松弄懂

    电脑已经成为了各位小伙伴日常生活中经常会使用的工具.笔记本电脑连接wifi很简单,相信很多小伙伴都会,可是面对台式电脑,很多小伙伴就不知道怎么连wifi了.台式电脑怎么连wifi?别担心,1分钟教你轻 ...

  4. const int a; int const a; const int *a; int * const a; int const * a const; 之间的区别

    const int a; int const a; const int * a; int * const a; int const * const; 之间的区别 const int a; int co ...

  5. 下班前几分钟,我彻底弄懂了 undefined 和 null 的区别

    目录 前言 一.基本概念 1.undefined 2.null 二.简单区别 三.表现形式 1.typeof 2.== 与 === 3.Object.prototype.toString.call 4 ...

  6. matlab求传递函数在某个频率点的增益_【干货分享】轻松弄懂开关电源TL431环路补偿传递函数推导...

    微信公众号:硬核电子. 开关电源常用的TL431环路接法是使用2型补偿器,本文将对这种补偿环路的原理进行说明,并推导传递函数,加深理解的同时,给实际电路设计提供理论指导.本文如有谬误之处,欢迎指正. ...

  7. axios学习笔记(二):轻松弄懂XHR的使用及如何封装简易axios

    使用 XMLHttpRequest(XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新.这允许网页在不影响用户的操作的情况下更新页面的局部内容.在 AJAX 编程中,XMLH ...

  8. JavaScript进阶教程(6)—硬核动图让你轻松弄懂递归与深浅拷贝

    目录 一.递归 1.1 概念 1.2 出口 1.3 递归经典问题:递归求斐波那契数列 1.4 递归经典问题:递归求阶乘 1.5 递归求一个数字各个位数上的数字的和 1.6 递归遍历DOM树 二 深浅拷 ...

  9. 一篇文章带你飞,轻松弄懂 CDN 技术原理

    概述 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的 ...

最新文章

  1. novaclient的api调用流程与开发
  2. 谁还期待iPhone 13?
  3. Fiori configuration edit also needs enqueue
  4. equals, hashCode, toString方法重写,深入探究equals
  5. 这辆迷你摩托车,很酷!
  6. pygame和python的区别_用Python和Pygame写游戏-从入门到精通(22)
  7. 输入和用户界面——总结
  8. Spark入门实战系列--6.SparkSQL(上)--SparkSQL简介
  9. 如何使用cmd查看本机IP地址
  10. PHP程序员简历模板
  11. balenaEtcher-1.5.70可能是最好用的镜像写U盘工具 img to usb dmg to usb支持多种格式内附截图介绍多平台均有
  12. 最新win10系统激活教程
  13. 佰维存储通过注册:拟募资8亿 国家集成电路基金是二股东
  14. 利用QVOD架设流媒体服务器/电影服务器/vod服务器
  15. 企业文化五因素论(转载)
  16. 移动端跨平台开发的深度解析
  17. 呼吸系统疾病病人的护理题库【1】
  18. 从被遗忘到牛市龙头,一文梳理ETH 2020爆发逻辑
  19. 平面设计需要学习什么,平面设计是什么;夏雨老师
  20. lgv50怎么进入fastboot模式_fastboot知识扫盲 高级刷机方式fastboot模式怎么进入?

热门文章

  1. c++语言int最大值,c++ 关于如何获取int型的最大值
  2. 怎么开启队友无伤_和平精英暗夜危机无敌点位送上!不仅无伤打僵尸 敌人还看不到你...
  3. python pillow无法安装_Pillow
  4. java数据库实例_选择数据库实例
  5. inno setup 中文乱码问题_解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题...
  6. FileZilla 服务器端win server2008以上的配置
  7. 爬虫python下载电影_python爬虫:抓取下载电影文件,合并ts文件为完整视频
  8. 最常用Python开源框架有哪些?
  9. Java的native方法
  10. POJ 2287 - Tian Ji -- The Horse Racing(贪心)