logologo
  • WebUI
  • JavaScript
  • TypeScript
  • C++
  • ··
    • C
    • Rust
    • Python
    • Cangjie
    • SQL
    • Design
    概述
    常见的数据结构
    ecmascript相关
    enumerable
    Object 内部实现
    sameValue 算法
    unicode
    语法设计
    声明
    表达式
    模块
    语句
    严格模式
    类型系统
    Array
    typedArray
    Map
    Number
    Object
    Set
    String
    结构化
    基本的组织元素
    动态性
    并发性
    范式
    函数式
    函数的行为
    闭包
    函数
    从运算式语言到函数式语言
    语言的多范式

    Last Updated: 11/30/2025, 3:14:53 PM

    Previous pagetypedArrayNext pageNumber

    #Map

    Map(字典/映射)是 Object 数据类型的增强版本。

    不同点\数据结构ObjectMap
    键的类型String or SymbolAny
    键的顺序不固定。和添加顺序无关,与引擎实现有关。固定。和添加顺序有关
    迭代器需要自己部署默认已经部署
    迭代范围整个原型链上的所有可枚举属性自身可枚举属性
    属性可控性属性表的控制,访问器属性的控制无
    易用性难易

    #Inst

    new Map();
    const map = new Map(iterator); // 见Entries数据结构
    map.size; // 规模度量
    exercises

    ::: code-group <<< @/../codes/js/std/Map/instance.test.js [instance]

    #Method

    以下方法默认来自于Map.prototype

    ecmaapidescribenote
    2015get(key)取值
    2015set(key,value)添加或修改一个属性
    2015delete(key)删除
    2015clear()删除所有
    2015has(key)是否存在
    2015keys()取键数组
    2015values()取值数组
    2015entries()返回迭代器对象
    2015forEach((key,value,map)=>{})遍历
    2015[Symbol.iterator]()供for...of和展开语法使用
    exercises

    ::: code-group <<< @/../codes/js/std/Map/proto/iterator.test.js [[Symbol.iterator]]