介绍下 Set、Map、WeakSet 和 WeakMap 的区别?ES5/ES6 的继承除了写法以外还有什么区别?setTimeout、Promise、Async/Await 的区别

Set、Map、WeakSet 和 WeakMap 的区别

  • Set:

    • 是一个集合,只包含唯一的值。
    • 不允许重复的值,并按插入顺序进行迭代。
    • 对值的引用是持久化的。
  • Map:

    • 是一个键值对的集合,其中的键和值可以是任意类型。
    • 键值对按照插入的顺序进行迭代。
    • 对键和值的引用是持久化的。
  • WeakSet:

    • 是一个只允许对象作为其成员的集合。
    • 对象是弱引用,即当对象没有其他引用时,它会被垃圾回收机制自动回收。
    • 不支持 size 属性和迭代。
  • WeakMap:

    • 是一个键值对集合,其中的键必须是对象,值可以是任意类型。
    • 键是弱引用,即当键没有其他引用时,它会被垃圾回收机制自动回收。
    • 不支持 size 属性和迭代。

ES5/ES6 继承的区别

  • ES5 继承:

    • 通过构造函数和原型链实现。
    • 使用 Object.create() 创建原型链,或者直接设置原型来实现继承。
    • 需要显式地调用父类构造函数,并手动设置子类原型的 constructor 属性。
  • ES6 继承:

    • 使用 class 关键字和 extends 关键字实现。
    • 语法更加简洁和直观。
    • 通过 super() 调用父类构造函数,并且子类的原型链和 constructor 属性自动处理。

setTimeout、Promise 和 Async/Await 的区别

  • setTimeout:

    • 用于设置定时器,在指定时间后执行某个回调函数。
    • 主要用于简单的延迟执行,但不适合处理复杂的异步操作链。
  • Promise:

    • 代表一个异步操作的结果,处理异步操作的成功和失败。
    • 通过链式调用 .then().catch() 方法处理异步结果。
    • 适用于处理异步操作的链式流程。
  • Async/Await:

    • 基于 Promise 的语法糖,使异步代码看起来像同步代码。
    • async 函数返回一个 Promise,而 await 用于等待 Promise 的结果。
    • 提高了异步代码的可读性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值