清淨
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • ECMAScript6

    • 简介
    • let
    • const
    • 解构赋值
    • 对象简写
    • 箭头函数
    • 参数默认值
    • 剩余参数
    • 可选链操作符
    • 空值合并运算符
    • 逻辑空赋值
    • 模板字符串
    • 扩展运算符 (展开语法)
    • Array 扩展
    • String 扩展
    • Number 扩展
    • Object 扩展
    • 迭代器
    • 生成器
    • BigInt
    • Set
    • Map
    • class
    • 模块化
    • globalThis
    • Promise
    • async-await

Object 扩展

ES6 对 Object 进行了扩展,提供了很多新的方法,使得对对象的操作更加方便。

  • Object.is()

    判断两个值是否完全相等,类似 ===,但又有差别。

    console.log(Object.is(1, 1))
    console.log(Object.is(1, 2))
    console.log(Object.is(NaN, NaN))
    console.log(NaN === NaN)
    
  • Object.assign()

    合并对象。

    let obj1 = {
    name: '1'
    }
    let obj2 = {
    name: '2',
    age: 10
    }
    console.log(Object.assign(obj1, obj2))
    
  • Object.keys()

    获取对象的所有 key,返回一个数组。

    let obj = {
    name: 'zs',
    age: 20,
    foo() {
    
    }
    }
    console.log(Object.keys(obj))
    
  • Object.values()

    获取对象的所有 value,返回一个数组。

    let obj = {
    name: 'zs',
    age: 20,
    foo() {
    
    }
    }
    console.log(Object.keys(obj))
    console.log(Object.values(obj))
    
  • Object.entries()

    获取对象的 key-value,将其每一个封装为数组 ([key, value]) ,并返回一个数组 ([[key1, value1], [key2, value2]]) 。

    let obj = {
    name: 'zs',
    age: 20,
    foo() {
    
    }
    }
    console.log(Object.entries(obj))
    
  • 对象转 Map

    let obj = {
    name: 'zs',
    age: 20,
    foo() {
    
    }
    }
    console.log(new Map(Object.entries(obj)))
    
  • Object.fromEntries()

    将二维数组转化为对象,或者将 Map 转为对象。

    // {1: 2, 5: 6}
    console.log(Object.fromEntries([[1,2],[5,6]]))
    // {key: "value"}
    console.log(Object.fromEntries(new Map().set('key', 'value')))
    
想要编辑此页?
上次更新: 2025/6/5 23:39
贡献者: Junfeng Dai
←Number 扩展迭代器→
[ 纸上得来终觉浅绝知此事要躬行 ]
Copyright © 2021-present Junfeng Dai
蜀ICP备2021009537号