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 区别
- 共性
for of 和 for in都是用来遍历的属性- 区别
功能不同
: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)
-
target
目标对象,接收源对象属性的对象,也是修改后的返回值。 -
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] ]