我是程序员小白,每天致力于基础语法的反复学习,并通过自己的总结进行记忆!!!
今天学习:对象的新增方法
1、Object.is():比较两个值是否完全相等
Object.is('1','1') 输出结果:true
Object.is('1','2') 输出结果:false
Object.is('1',1) 输出结果:false
2、Object.assign(目标对象,源对象):用于对象的合并,接收两个参数,将源对象(source)的所有可枚举属性,复制到目标对象(target)
2.1、对象的合并:如果目标对象与源对象有同名属性,或多个源对象有同名属性,则后面的属性会覆盖前面的属性
let source = {a:1,b:2,c:3}
let target = {a:1,b:2,c:4,d:5}
Object.assign(source,target)
输出结果:{a: 1, b: 2, c: 4, d: 5}
2.2、浅拷贝
let target = {a:1,b:2,c:4,d:5}
Object.assign({},target)
输出结果:{a: 1, b: 2, c: 4, d: 5}
2.3、同名属性的替换
let source = {name:'lichan',school:'西安电子科技大学'}
let target = {name:'lichan',school:'陕西师范大学'}
Object.assign(source,target)
输出结果:{name: 'lichan', school: '陕西师范大学'}
2.4、数组的处理,把数组当做对象来处理
Object.assign([],[1,2,3])
输出结果:[1, 2, 3]
Object.assign([4,5,6,4,5,6],[1,2,3])
输出结果:[1, 2, 3, 4, 5, 6]
3、Object.keys():返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名
let object= {a:'aa',b:'bb',c:'cc'}
Object.keys(object)
输出结果:['a', 'b', 'c']
4、Object.values():返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值
let object= {a:'aa',b:'bb',c:'cc'}
Object.values(object)
输出结果:['aa', 'bb', 'cc']
5、Object.entries():返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组
let object= {a:'aa',b:'bb',c:'cc'}
Object.entries(object)
输出结果:
[
‘a’:’aa’,
‘b’:’bb’,
‘c’:’cc’
]
6、Object.fromEntries()是Object.entries()的逆操作,用于将一个键值对数组转为对象。
let object= {a:'aa',b:'bb',c:'cc'}
Object.entries(object)
输出结果:
[
‘a’:’aa’,
‘b’:’bb’,
‘c’:’cc’
]
Object.fromEntries(Object.entries(object))
输出结果:{a: 'aa', b: 'bb', c: 'cc'}
7、Object.hasOwn(所要判断的对象,属性名):接受两个参数,第一个是所要判断的对象,第二个是属性名,判断属性名是否为自身属性,是则返回true,不是返回false
let object= {a:'aa',b:'bb',c:'cc'}
Object.hasOwn(object,’a’) 返回结果:true
Object.hasOwn(object,’d’) 返回结果:false