总结ES6:
1、let关键字,let定义的变量只在它所在的块级作用域有用({}内有用),let不能在同一个作用域中重复定义,let没有声明提升 。
2、const关键字,用于声明一个常量,一旦定义 就不能改变值 必须得有初始值 也就是常量只要定义就必须要赋值。
3、解构赋值,一种新的变量赋值方式。常用于交换变量值,提取数据,用解构赋值保存
4、for...of遍历 es6中新增的循环 for-of
for of循环 可以循环数组和类数组对象,可以直接拿到数组的每一项 也可以使用break和continue,
但是 它不能直接拿到数组的下标
5.箭头函数
Let fun1=()=>{}
(1)原来js代码里用到函数的地方 都可以写成箭头函数
(2)箭头函数里没有this,如果要用this就是父级的this 如果父级也没有this 那么就继续往上找 直到找到window
6.Set结构,set它本身是一个构造函数 用new Set去实例化 set的值都是唯一 可以用来去重
Set.prototype.size:返回Set实例的成员总数。
add();//往set的末尾添加值delete(); // 删除set的某个值 返回一个布尔值,表示删除是否成功。has(); //判断是否含有某一项 返回一个布尔值clear();
//删除所有的set项 没有返回值。
foreach可以用于遍历成员,循环set结构 跟数组的循环类似 但是set的循环得不到下标
7、Map结构
map 结构的数据类似于json 区别是可以用任何类型的数据作为key值
map.size //返回 Map 结构的成员总数。
set(key, value)返回整个 Map 结构。
get(key) get方法读取key对应的键值,如果找不到key,返回undefined。
has(key) 返回一个布尔值 某个键是否在当前 Map 对象之中
delete(key) 删除某个键,返回true。如果删除失败,返回false。
clear() clear方法清除所有成员,没有返回值。
遍历方法
Map
keys():键名。
values():键值
forEach():遍历 Map 的所有成员。
8. es6面向对象
(一) ES6中对象的创建 class
(二) ES6中对象的继承
E6中class可以通过extends关键字来实现继承,
子类必须在constructor方法中首先调用super方法,否则实例化时会报错。
这是因为子类没有自己的this对象, 而是继承父类的this对象,
如果不调用super方法,子类就得不到this对象。
9.处理异步操作
(一)Promise
(1)页面中只有一个ajax请求 用promise方法请求
(2) 如果页面中有多个ajax请求的时候,这些请求之间互相没有依托关系 可以用promise.all