ECMAScript2015也叫es6,jacascript的2015年修订版
es6加入了许多新的元素,为了让js看起来更像是更规范的语言。首先,最显著的变化,或者说最能感受到的改变,就是声明变量的方式,以往的js由于是弱类型语言的关系,声明变量只有一个关键字 var 这个关键字能够声明所有类型的变量,在es6里面,声明变量的关键字有 let和const,let关键字声明的变量具有块级作用域,这也是解决闭包问题的一个方案,使用let关键字声明变量;const关键字声明的变量具有只读性,所以在声明变量之后必须给该变量赋值,一般是用在使用函数字面量的方式创建函数体。
迭代器iterator
es6的提供了一种遍历机制接口叫遍历器,利用了for of 语句,能够遍历对象,有点类似于增强for循环(for in语句),迭代器会调用一个next()方法。
map对象和set对象
for of 迭代器可以遍历map和set对象,set和map对象是es6中加入的对象类型,
set和map是由键值对组成的对象,因此,迭代器遍历该对象之后,可以使用es6中的结构进行数据分解。
解构
解构指的是es6中对对象或数组进行拆分的一种方式,该方式非常的简洁明了,通过直白的手段解析数组与对象,形成新的键值对;es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,也称模式匹配
若等号左右两边不相等,也能完成解构,但只会匹配一部分的值
例如:
var arr = [1,2,3,4,[5,6];
let [a,b,c,d,e] = arr;
console.log(a) //1
console.log(b) //2
console.log(c) //3
console.log(d) //4
console.log(e) //5
es6严格模式
在代码块中加
"use strict" 进入严格模式
严格模式中对语法有诸多限制,一般在测试特定函数时进入严格模式,项目部署上线时一定最好不要使用严格模式,容易发生意想不到的问题。