ES6笔记二


    特点
        用class声明 本质是function
        constructor 构造
        extends 继承
        new 实例化
        类名建议大写开头
    实例
        class Cat extends Animal{
            constructor(name,color){
                super(name);
                this.color = color;
            }
         say(){}
         }

        var c1 = new Cat('小猫咪','五彩斑斓的黑')
模块化
    <script type='module'>
    导出
        export{name} 导出一个
        export{name,fun} 导出多个
        export default Cat 导出默认
    导入
        import {name} from url
        import {name,fun} from url
        import Cat from url 导入默认
        import Cat,{name,fun} from url 合并默认
        import * as utils from url 导入所有as关键字
    文件打开必须是http开头,不能是D: C:file协议
Set 集合
    内容不重复
    初始化 :var s1 = new Set([1,2,1,3])
    利用set特性去重 :arr = [...new Set(arr)]
    常用方法
        add 添加
        delete 删除
        clear 清空
        has 检查是否有
        size 长度
    类似数组
WeakSet 集合
    内容不重复
    内容必须是引用对象
    new WeakSet{[...]}
Map 图
    类似对象
    特点:键可以是任意类型
    初始化:new Map([['wxj',22],['jack',20],['ged',28]])
    方法
        set 添加
        get 获取
        has 检测
        size 长度
        delete 删除
        clear 清除
WeakMap
    特点:key都是弱引用
可迭代对象
    可以被for of遍历
    String 字符串
    Array 数组
    Set 集合
    Map 图
    keys() 键集合
    value() 值集合
    enteries() 键与值集合
    for(let v of arr){
         console.log(v);
     }

Promise(承诺)
    定义 :返回一个延期的承诺,用then来接受结果
    resolve解决(兑现)
    reject 拒绝
    作用
        1. 按顺序执行异步调用
        2. 避免回调函数 多层嵌套
        race  有一个resolve 就调用 then
        all 等所有结果都resolve 才调用then方法
    基本写法
        new Promise((resolve,reject)=>{
            resolve(结果)
            reject (原因)
        })
        .then(
                res=>{//获取结果},
                err=>{// 捕捉错误})
                .catch(err=>{捕捉错误})
    race
        Promise.race([多个异步调用])
        .then(res=>{返回的是最快resolve结果})
    all
        Promise.all([多个异步调用])
        .then(list=>{所有的resolve结果列表})
generator(生成器)
    定义:
        遇到 yield 会挂起 暂停
        执行时候 next() 再次开始执行
        通常去做异步请求
    function * say(){
           yield "1";
           yield “2”;
           yield "3"
        }
                var it = say();
                it.next() //{value:"1",done:false}
                it.next() //{value:"2",done:false}
                it.next() //{value:"3",done:true}
                it.next() //{value:undefined,done:true
async 异步  await 等待
    异步编程
    function say(){ return new Promise()}
    async function doit(){
            await say();
            await say():
            await say()
     }
     say()
.    then(res=>{return say()})
    .then(res=>{return say()})

proxy(代理)
    可以对目标对象的读取调用...进行拦截
    1. 目标对象 
        let target = { name:"mumu",age:18};
    2. 处理
        let handler = {
               get(target,key){},
               set(target,key,value,receiver){}
        }
    3. let proxy =  new Proxy(target,handler)
    处理函数
        set
        get
        has()
        ownkeys
        apply
        ...
Reflect(反射)
    对 对象进行一些操作,方便 代理处理
    常用
        Reflect.ownKeys(obj) 获得对象键的列表
        Reflect.set(obj,key,value) 设置对象的值
        Reflect.get(obj,key) 获取对象的值
        Reflect.has(obj,key) 检测是否有某个值

猜你喜欢

转载自blog.csdn.net/qq_60633836/article/details/123075608