1、ES6:

● 我们所说的ES5和ES6其实就是在js语法的发展过程中的一个版本而已

● ECMAScript就是js的语法,ES6新增了一些功能

2、let和const关键字 和var的区别

● 我们以前都是使用var关键字来声明变量的

● 在ES6的时候,多了两个关键字let和const,也是用来声明变量的

● 只不过和var有一些区别:

(1)let和const不允许重复声明变量

// 使用var的时候重复声明变量是没问题的,只不过就是后面会把前面覆盖掉

var num = 100
var num = 200

// 使用let重复声明变量的时候就会报错了

let num = 100
let num = 200  //这里就会报错了

// 使用const重复声明变量的时候就会报错

const num = 100
const num = 200  //这里就会报错了

(2)let和const声明的变量不会在预解析的时候解析(也就是没有变量提升)

// 因为预解析(变量提升)的原因,在前面是有这个变量的,只不过没有赋值

console.log(num)//undefined
var num  = 100

// 因为let不会进行预解析(变量提升),所以直接报错了

console.log(num)//undefined
let num  = 100

// 因为const不会进行预解析(变量提升),所以直接报错了

console.log(num)//undefined
const num  = 100

(3)let和const声明的变量会被所有代码块限制作用范围

// var声明的变量只有函数能限制其作用域,其他的不能限制

if (true){
var num = 100
}
console.log(num)//100

 // let声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域

(if/while/for/...)
if (true) {let num = 100console.log(num) // 100
}
console.log(num) // 报错

  // const声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域

(if/while/for/...)
if (true) {let num = 100console.log(num) // 100
}
console.log(num) // 报错

3、let和const的区别

(1)let声明的变量的值可以改变,const声明的变量的值不可以改变

let num = 100
num = 200
console.log(num)//200
const num = 100
num = 200 //这里就会报错了,因为const声明的变量值不可以改变(我们也叫做常量)

 但是对于改变用const定义的对象,当对象内容重新赋值时,不会报错

  <script>const obj = {name:"yiyi"}obj.name = "linlin" //允许obj = {name:"linlin"} //不允许,会报错</script>

那代码中obj.name = "linlin",给name重新赋值,是允许的不会报错;但是obj = {name:“linlin”},给对象重新赋值就报错了,原因是当你给name重新赋值,只是这个对象的内容改变了,这个对象内容存储在堆里面,obj只是等于一个地址而已,现在地址没变,所以就是obj没被重新赋值,但是obj={name:“linlin”}是从新给obj负值了,这个const就不允许了,就报错。

(2)let声明的时候可以不赋值,const声明的时候必须赋值 

let num
num = 100
console.log(num)//100
const num //这里就会报错了,因为const声明的时候必须赋值

4、let的常见使用场景

120-案例-块级作用域_哔哩哔哩_bilibili

ES6新增关键字:let和const及let的常用场景相关推荐

  1. ES6新增的let与const

    1.const 声明常量,一旦声明必须立马赋值,否则报错 const PI = 3.14 const PI; //报错:Uncaught SyntaxError: Missing initialize ...

  2. JS的ES5和ES6新增的方法(重点)

    ES5 EcmaScript5 严格模式和高阶函数 严格模式 1.全局严格 函数外的是全局 2.局部严格 函数内部的是局部 使用严格模式 "use strict" 必须放在代码的第 ...

  3. ES6/06/ES6简介,ES6新增语法,let声明变量,const声明常量,var,let和const总结,数组解构,对象解构,箭头函数,剩余参数

    ES6简介 ES全称:ECMAScript ; 由ECMA国际化组织制定的标准脚本语言的标准化规范: 为什么使用ES6? 每一次标准的诞生都意味着语言的完善,功能的加强,JavaScript语言本身也 ...

  4. 第二节:ES6新增了let关键字,干嘛用的?

    大白话,讲编程,连载的第一节,得到大家的认可和赞赏,谢谢支持.文章还出现了几个错别字,惭愧!此外,连载的频率初定为每周2节,时间大约在早上10:00:大家对此有何建议都可以留言,前端君都会回复. 来吧 ...

  5. (一) ES6 新特性 ——let与const关键字

    CSDN话题挑战赛第2期 参赛话题:学习笔记   目录 2.1.let 关键字 2.2. const 关键字 2.1.let 关键字 let 关键字用来声明变量,使用 let 声明的变量有几个特点: ...

  6. ES6新增语法与内置对象扩展

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是ES6 ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项 ...

  7. ES6新增 Symbol

    Symbol的诞生? Symbol的诞生,也就是Symbol存在的意义 之前我们的对象属性的数据类型都是字符串,没有其他的了.所以会导致属性名重复,导致属性值被覆盖的情况.比如,你使用了一个他人提供的 ...

  8. ES6新增了哪些特性又和ES5有什么不同?

    简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScript 语言可以用来编写复杂的 ...

  9. H5新增、CSS3以及ES5、ES6新增特性

    1.H5新增 新增特性:语义化标签.音视频处理API.canvas.拖拽释放API.history API.地理位置API.webSocket.web存储的localStorage和SessionSt ...

最新文章

  1. L1-008 求整数段和 (C++)
  2. 我是一个秒杀请求,正在逃离这颗星球...
  3. OrgChart 组织架构与PHP结合使用
  4. pku 1573 Robot Motion 第一周训练——模拟
  5. 丘成桐在CNCC会议的演讲全文
  6. 分布式映射与集中式映射_K映射上的表达式映射和组包围
  7. python的枚举和for循环_python入门与进阶篇(三)之分支、循环、条件与枚举,python枚举...
  8. 机动车辆保费计算器 1.1新版发布
  9. 浅谈算法和数据结构: 十一 哈希表
  10. mysql触发器联机删除_mysql触发器删除实例1
  11. 3dmax教程技术:3dmax 怎么去掉贴图_3dmax如何去掉贴图
  12. 图片转化成emf等格式的办法
  13. 软媒定时关机,电脑无法启动
  14. linux刷新本地dns命令_如何刷新本地DNS缓存
  15. 时间序列分析之GARCH模型介绍与应用
  16. 知识服务才是为用户创造价值的体现
  17. 无线蓝牙耳机哪个品牌好?蓝牙降噪耳机品牌推荐
  18. == 和 ===区别
  19. 让群晖ds218play同树莓3B+派互通有无
  20. oracle 数据字典画报,1 Oracle常用数据字典表

热门文章

  1. 周测三,Linux命令如下:
  2. 用三种方式安装Nginx
  3. error C2065: ‘salary‘ : undeclared identifier
  4. serializers.serialize
  5. android系统(148)---android 8.1关机闹钟
  6. Linux 线程基础 1
  7. paper fast review :Deep Residual Shrinkage....
  8. request.getPathInfo() 方法的作用
  9. Latex字体加粗不了
  10. docker docker compose 云效流水线