1.关于 symbol
ES5 现有数据类型:
number、string、boolean、Object、undefined、function
ES6 新增数据类型:symbol
⭐使用方法:
let syml = Symbol('aaa');
console.log(typeof syml); //symbol
- Symbol 不能 new
- Symbol() 返回是一个唯一值 symbol 做一个 key,定义一些唯一或者私有一些东
- symbol 是一个单独数据类型,数据类型的名字就是" symbol", 属于
ES6 的一个基本数据类型 - 如果 symbol 作为 key,用 for in 循环,出不来
2.关于 generator 函数
generator 函数
生成器,迭代器
解决异步深度嵌套的问题, async(generator 函数的替代函数)
语法:【*两边空格随意】
function * show(){
yield [生产] }
function* show(){
}
function *show(){
}
eg:
function * gen(){
yield 'welcome';
yield 'to';
return 'ES6';
}
调用:
let g1 = gen(); //不可加 new
g1.next(); // {value:‘welcome’, done:false}
g1.next(); // {value:‘to’, done:false}
g1.next(); // {value:‘牧码人’, done:true}
特点:手动调用,麻烦
适合:
for .. of 自动遍历 generator
return 的东西,它不会遍历
generator 不仅可以配合 for ... of ...
还可以:
1. 解构赋值:
let [a, ...b] = gen();
2. 扩展运算符
'...'
console.log(...gen());
3. Array.from()
console.log(Array.from(gen()));
generator 结合 axios 数据请求: