• es6之Set和Map


    一. Set

    • 类似数组,成员值唯一,var s = new Set()
    • s加入值用add,加入时不会发生类型转换(判断两值是否相等用的 ===,但Set会认为NaN等于自己)
    • Set.prototype.constructor === Set , Set.prototype.size返回Set实例的成员总数
    • delete删除某个值,has返回布尔值,clear清空实例
    • keys返回键名的遍历器,values返回键值的遍历器,entries返回键值对的遍历器,
    • Set.prototype[Symbol.iterator] === Set.prototype.values,所以可以直接用for...of遍历set
    • 扩展运算符和Set结合,可以去重,返回数组类型

     二. WeekSet

    • 成员只能是对象,方法有add、delete 、has
    • WeakSet 里面的引用,都不计入垃圾回收机制
    • WeakSet 不能遍历,是因为成员都是弱引用,随时可能消失,遍历机制无法保证成员的存在,很可能刚刚遍历结束,成员就取不到了。WeakSet 的一个用处,是储存 DOM 节点,而不用担心这些节点从文档移除时,会引发内存泄漏。

    三. Map

    • 类似于对象,键值对的集合,键不限类型,即“值—值”的对应
    • 任何具有Iterator的数据结构都可以当做构造函数的参数
    • 对同一个键赋值,后面的会覆盖掉前面的,Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键
    • size返回成员总数,set(key, value),get(key),has(key),delete(key),clear()
    • 遍历方法:keys(),values(),entries(),forEach()
    • Map.prototype[Symbol.iterator] === Map.prototype.entries
    • Map 结构转为数组结构,比较快速的方法是使用扩展运算符

    四. WeakMap

    • 只接受对象作为键名,生成键值对的集合
    • 没有遍历操作,只有get set has delete
    • WeakMap 应用的典型场合就是 DOM 节点作为键名
    • WeakMap的键名所引用的对象都是弱引用,一旦不需要,里面的键名对象和所对应的键值对会自动消失,不用手动删除引用。
  • 相关阅读:
    编译原理入门以及战大作业心得(2)汇编简易入门 康某
    简易聊天对话框(源码)
    用js做数字字母混合的随机四位验证码
    HTML5基础
    javascript基础
    jquery.AutoComplete 仿百度文本框感应
    DropDownlist显示树状
    利用 System.Net.Mail 实现邮件发送功能
    sql 根据字段值,查找属于哪个表中的哪个字段
    sql 查看数据库中的各表的大小
  • 原文地址:https://www.cnblogs.com/colima/p/6923509.html
Copyright © 2020-2023  润新知