Object 构造函数上的静态方法

本文详细介绍了JavaScript中Object构造函数的几个静态方法:Object.keys()用于获取对象自身的可枚举属性名;Object.values()用于获取对象的所有属性值;Object.assign()用于合并多个对象;Object.is()用于比较两个值是否严格相等;Object.entries()用于分割对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Object 构造函数上的静态方法

1. Object.key(obj)

返回一个由给定对象的自身可枚举(遍历)属性组成的数组, 数组中的属性名的排列顺序和使用 for … in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环枚举原型链中的属性)。

   var arr8 = ['a', 'b', 'c']

   var obj2 = {
   	'100': '111',
   	'22': 11,
   	'2': '456'
   }

   var obj3 = {
   	name: 'zs',
   	age: 18,
   	sex: '男'
   }
   console.log(Object.keys(arr8)) // ['0', '1', '2']
   console.log(Object.keys(obj2)) // ['2', '22', '100']
   console.log(Object.keys(obj3)) // ['name', 'age', 'sex']

补充:for of 和 for in 区别

  1. 共性
    for of 和 for in都是用来遍历的属性
  2. 区别
  • 功能不同:for…in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。for in得到对象的key或数组/字符串的下标,for of和forEach一样,是直接得到值
  • 原型属性不同:for in 会遍历原型的元素,for of 不会遍历原型的元素
  • 数据类型不同:for in 可以遍历 object 类型,for of 不可以遍历 object 类型

2. Object.values(obj)

获取对象的属性值

var obj = { foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]

3.Object.assign(target, …sources)

  1. target
    目标对象,接收源对象属性的对象,也是修改后的返回值。

  2. sources
    源对象,包含将被合并的属性。

属性会被后续参数中具有相同属性的其他对象覆盖。

  let a = { a: 1 ,b:3};
  let b = { b: 2, c: 3 };
  let c = { d: 4, e: 5 };
  let obj= Object.assign(b,a,c)
   console.log(b,c,a,obj) //{b: 3, c: 3, a: 1, d: 4, e: 5} {d: 4, e: 5} {a: 1, b: 3} {b: 3, c: 3, a: 1, d: 4, e: 5}

4.Object.is(obj1,obj2)

比较两个值是否严格相等,或者说全等(地址)

  let a='12'
  let b=12
  let c=12
  console.log(Object.is(a,b))//false
  console.log(Object.is(b,c))//true

5.entries 分割对象

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值