一,es6的发展
二,es6语法点详解
1,let命令
1.1 let用于声明一个变量,作用范围只在该代码块中有效
1.2 let不存在变量提升,var声明的变量可在声明前使用,返回undefined。let声明的变量不能在声明前使用,使用报错
1.3 暂时性死区,let声明变量绑定代码块,如果全局域声明了a变量,而在某代码块中又用let声明了a,则在该代码中,a被绑定在代码块中,且不能未声明而后使用。
1.4 let命令不允许重复声明变量。即在同一个代码块中,a变量只能被声明一次。
1.5 let块级作用域,内层作用域可以定义外层作用域的变量
1.6严格模式下,在块级区域内能进行函数声明。es5可以
1.7const声明常量,必须初始化,不然报错,且不能重复赋值,只在作用块中有用。
1.8const只保存对象的地址,保证地址不变。但是并不能保证对象的属性不变
1.9es5中顶层对象的属性和全局变量是等价的,es6中顶层对象将逐步和全局对象脱钩。
1.10变量的解构和赋值,等号右边必须是具有iterator接口的数据,比如数组,否则报错。如果右边的数据结构比左边多,则会部分赋值
1.11默认值,es6使用‘===’判断相等,只有当右边明确指明undefined,或者没有才会使用默认值。默认值可以引用其他变量,但是必须先声明
1.12结构对象,解构与排列次序无关。解构对象赋值其实是赋值给模式的属性而不是模式。解构对象也可以部分匹配,不需要对所有的模式都赋值。
1.13解构字符串对象。字符串本身就是数组对象,并且包含length属性。
1.14函数的解构,传参解构,参数可设置默认值。
三,问题与解答
四,源代码