一、ES6简介
ES6是ECMAScript6 的简写
ES5
2015年发布了ES6,ES2015
2016 ES2016
2017 ES2017
2018 ES2018
2019 ES2019
2020 ES2020
…
1.ES与js的区别?
ES是JS的规格,js是ES的实现
2.ES5与ES6的关系?
ES6是下一代的JavaScript,新一代的JavaScript
ES6相比于ES5的语法更加的简洁,严谨
ES6相比于ES5,它并没有修改ES5的语法(全方位兼容ES5),新增知识
新增:
let const
字符串模板
数组扩展
对象扩展
解构赋值 模式匹配
class/继承
Promise
Iterator和generator
async…await
模块化(import/export)
ES5:对象冒充继承、原型链继承、混合继承、寄生式继承、组合寄生式继承…
ES 6: extends
ES6是基于ES5 的语法糖。 ES6的功能都可以使用ES5来实现,但是推荐使用ES6实现。糖很甜…
3.ES 6的兼容性问题
由于ES6是一个较新的技术,并不是所有的内容都会被浏览器支持(尤其是最新的内容,ES2019、ES2020…),到时候会使用一些工具,将ES6代码重新编译为ES5的代码,再执行
二、let
目前为止,学习过的能够定义变量的关键字:var function let const class
在ES6中新增了let关键字来定义变量
在ES5中,使用功能var定义变量。变量提升的概念,变量先定义和后定义
let 和var的区别
1.let定义的变量,没有变量提升,var有
2.let 定义的变量属于块级作用域,var定义的变量属于函数作用域
3.let定义的变量不允许重复定义
4.let定义的变量,会出现暂时性死区的情况
5.let定义的变量不会绑定到顶层对象(windo