ES6 --- Symbol generator 笔记

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值