1.ES6新增的数据类型
ES6里新增了一个数据类型 symbol(使用情况一般)
用typeof检测出来的数据类型是: symbol
1.定义:
let syml = Symbol('zzz');
2.注意:
1.Symbol不能new
2.Symbol() 返回是一个唯一值
一般是做一个key,定义一些唯一或者私有一些东西
3.symbol是一个单独数据类型,就叫symbol,基本类型
4.如果symbol作为key,用for in 循环,出不来
2.generator函数
这个函数能生成一些东西,也叫做生成器
解决异步,深度嵌套的问题, 但是现在不用了,现在有了新的东西async
1.语法:
定义:
function * gen() {
yield 'zzz';
yield 'xxx';
return 'a';
}
调用:
let g1 = gen();
console.log(g1.next()); //{value : 'zzz', done : false}
但是这种调用方法,是通过手动调用,非常麻烦
注意:
可以使用for...of 自动遍历 generator
return的东西,它不会遍历
for(let val of g1) {
console.log(val);
}
generator不仅可以配合for ... of ...
还可以:
1. 解构赋值
let [a,b] = gen();
2.扩展运算符
console.log(...gen());
3.Array.from()
console.log(Array.from(gen()));
generator结合 axios数据请求:
异步:不连续,上一个操作没有执行完,下一个操作照样开始
同步:连续执行,上一个操作没有执行完,下一个没法开始
关于异步,解决方案:
a.回调函数
b.事件监听
c.发布、订阅
4.Promise对象
ES2017,出现了async