ES6常用补充

本文详细介绍了ES6中的类定义、模块化导出导入、Set和WeakSet集合的去重与操作,以及Map和WeakMap的使用。还涵盖了可迭代对象、Promise异步处理和基本的数据结构概念,如Symbol和迭代器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

类的特点

 模块化

导出

        导入

 Set集合

 WeakSet 集合

 Map图

WeakMap

 可迭代对象


类的特点

        1.用class声明本质是function

        2.constrctor 构造

        3.extends 继承

        4.new 实例化

5.类名建议大写开头

 class Animal{
                constructor(name){
                    this.name = name;
                }
                yiel(){
                    console.log("我开始咆哮!");
                }
            }
            var an = new Animal("野兽");

 结果

 模块化

        <script type="module">

        导出

                1.export{name} 导出一个

                2.export{name,fun}  导出多个

                3.export default Cat  导出默认

        导入

                1.import {name} from url  导入一个

                2.import {name,fun} from url  导入多个

                3.导入默认 import Cat from ur

                4.合并默认  import Cat,{name,fun}from ur

                5.导入所有 as关键字  import * as utils from ur

注意:文件必须打开必须是http协议,不能是D:C:file协议

 Set集合

        1.内容不能重复

        2.初始化  var s1=new Set([1,2,1])

        3.利用Set特性去重  arr=[...new Set(arr)]

var arr=[1,2,2,2,2,4,4,5,5,6,9];
            arr = [...new Set(arr)]
            console.log(arr);

//结果为[1,2,4,5,6,9]

         4.常用方法
                add 添加
                delete  删除
                clear  清空
                has  检查是否有
                size 长度

        5.类似于数组

 WeakSet 集合

         1.内容不重复
         2.内容必须是引用
         3.new WeakSet([...])

 Map图

           1. 类似于对象
           2.特点:键可以使任意类型
           3. 初始化  new Map ([["gzg",18],["mumu",18]])
            4.方法
                get 获取
                set  添加
                has  检测
                size  长度
                delete 删除
                clear  清空

WeakMap

            特点:key都是弱引用 

 可迭代对象

        1.可以被for  of遍历
        2.String 字符串
            Map  图
            Array  数组
            Set  集合
        3.keys()键的集合
           values()值得集合
           enteries()键与值的集合
        4.for  of
            for (let v of arr ){
                  console.log(v);
             }

Promise

        定义

                1.执行异步任务

                 2.避免回调地狱

        创建

                var  p=new Promise((resolve,reject)=>{

                        Math.random()>0.?resolve("请你吃肯德基"):reject("明天在说")
                })

        实列

                //.then方法等待  任凭p里面的resolve执行

                p.then(res=>console.log(res))

                //  .catch方法 等待  任凭p里面的reject方法执行

                .catch(err=>console.log(err))

         其他

               //.all

                 Promise.all([..])
                .then()
                // 等待异步列表中全部resolve执行

                //.rase                               

                Promise.race([...])
                .then()
                异步列表中最resolve的值

 异步与等待

           async

                async 是“异步”的简写,带async关键字的函数,是声明异步函数,返回值是promise对象,如果async关键字函数返回的不是promise,会自动用Promise.resolve()包装。

    async function say(){
				return "你好ES6"
			}
			say()
			.then(res=>console.log(res))
			//输出结果为你好ES6

           await

                await 可以认为是 async wait 的简写。所以应该很好理解 async 用于申明一个 function 是异步的,而 await 用于等待一个异步方法执行完成。

Symbol

        1.符号;不重复;不能修改

        var sym = Symbol("标识")

        可以使Sym作为唯一的key或者标识符 {sym:”abc“}

迭代器

        1.可迭代对象都拥有迭代器(可以被for  of 遍历对象都是迭代对象)  String   Array  Set  Map

        2.获取迭代对象  var ite = arr[Symbol.iterator]()

        3.通过next方法进行迭代         itr.next()

生成器

        1.普通函数前面添加*
        通过关键字yied关键字来控制生成
        最终函数执行返回一个可迭代元素


        2.function *range(start,end,step){
           while(start<step){
            yield  start;
            start+=step;
           }
        }


        3.生成一个1-100的可迭代元素
        var  list=range(1,100)
        转换为数组
        list=[...list]


        4.当函数执行到yield关键字会等待

代理proxy 

对象操作的劫持
obj={msg:"你好"}
var o = new Proxy(obj,{
  get (target,prop){
   return  targe[prop]
}
   set(target,prop,value){
      targe[prop]=value
}
})
o.msg 会执行get方法
o.msg="abc"会执行set方法
我们可以在get和set方法里面做一些判断劫持等其他操作
console.log(o.msg)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值