javaScript 对象常用方法

113 阅读2分钟

在 JavaScript 中,对象是一组键值对的无序集合,其中键是字符串(或符号),值可以是任意类型。以下是一些常用的操作对象的方法:

  1. Object.keys(obj)

    • 返回一个包含对象自身所有属性(不包括原型链上的属性)的数组。
    const obj = { a: 1, b: 2 };
    console.log(Object.keys(obj)); // ["a", "b"]
    
  2. Object.values(obj)

    • 返回一个包含对象所有自身属性值的数组。
    const obj = { a: 1, b: 2 };
    console.log(Object.values(obj)); // [1, 2]
    
  3. Object.entries(obj)

    • 返回一个包含对象自身所有属性的键值对数组。
    const obj = { a: 1, b: 2 };
    console.log(Object.entries(obj)); // [ ["a", 1], ["b", 2] ]
    
  4. Object.assign(target, ...sources)

    • 将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
    const obj1 = { a: 1 };
    const obj2 = { b: 2 };
    const obj3 = { c: 3 };
    const obj = Object.assign(obj1, obj2, obj3);
    console.log(obj); // { a: 1, b: 2, c: 3 }
    
  5. Object.create(proto, [propertiesObject])

    • 创建一个新对象,使用现有的对象来提供新创建的对象的__proto__。
    const proto = { a: 1 };
    const obj = Object.create(proto);
    obj.b = 2;
    console.log(obj); // { a: 1, b: 2 }
    
  6. Object.defineProperty(obj, prop, descriptor)

    • 给对象添加一个新属性或修改现有属性,并返回对象。
    const obj = {};
    Object.defineProperty(obj, 'a', {
      value: 1,
      writable: false
    });
    console.log(obj.a); // 1
    
  7. Object.getOwnPropertyDescriptor(obj, prop)

    • 返回指定对象上一个自有属性的属性描述符。
    const obj = { a: 1 };
    console.log(Object.getOwnPropertyDescriptor(obj, 'a')); // { value: 1, writable: true, enumerable: true, configurable: true }
    
  8. Object.freeze(obj)

    • 冻结一个对象,使对象不能被修改。
    const obj = { a: 1 };
    Object.freeze(obj);
    obj.a = 2; // 不会改变 obj.a 的值
    console.log(obj); // { a: 1 }
    
  9. Object.seal(obj)

    • 密封一个对象,使对象不能添加新属性。
    const obj = { a: 1 };
    Object.seal(obj);
    obj.b = 2; // obj.b 不会被添加
    console.log(obj); // { a: 1 }
    
  10. Object.preventExtensions(obj)

    • 阻止对象添加新属性。
    const obj = { a: 1 };
    Object.preventExtensions(obj);
    obj.b = 2; // obj.b 不会被添加
    console.log(obj); // { a: 1 }
    
  11. Object.isFrozen(obj)

    • 判断对象是否被冻结。
    const obj = { a: 1 };
    Object.freeze(obj);
    console.log(Object.isFrozen(obj)); // true
    
  12. Object.isSealed(obj)

    • 判断对象是否被密封。
    const obj = { a: 1 };
    Object.seal(obj);
    console.log(Object.isSealed(obj)); // true
    
  13. Object.isExtensible(obj)

    • 判断对象是否允许扩展。
    const obj = { a: 1 };
    Object.preventExtensions(obj);
    console.log(Object.isExtensible(obj)); // false
    
  14. JSON.stringify(obj)

    • 将一个 JavaScript 对象转换为 JSON 字符串。
    const obj = { a: 1, b: 2 };
    console.log(JSON.stringify(obj)); // '{"a":1,"b":2}'
    
  15. JSON.parse(str)

    • 将一个 JSON 字符串转换为一个 JavaScript 对象。
    const str = '{"a":1,"b":2}';
    console.log(JSON.parse(str)); // { a: 1, b: 2 }
    

这些方法涵盖了对象的创建、复制、枚举、属性定义、属性描述符获取、冻结、密封、扩展预防以及 JSON 序列化和解析等操作。掌握这些方法可以帮助你更有效地操作和处理 JavaScript 对象。