js object对象方法总结

1 Object.freeze() 阻止修改现有属性的特性和值,并阻止添加新属性

let obj={}
obj.sex='男'
Object.freeze(obj)
obj.sex='女'
console.log(obj.sex)  //男  修改属性无效

2 Object.assign(target,source1,source2) 该方法用于对象合并,将源对象source的所有可枚举属性合并到目标对象上,此方法只拷贝源对象的自身属性,不拷贝继承属性。

Object.assign 方法实行的是浅拷贝,而不是深拷贝。也就是说,如果源对象某个属性的值是对象,那么目标对象拷贝得到的这个对象的引用。同名属性会替换
Object.assign只能进行值的复制,如果要复制的值是一个取值函数,那么将求值后再复制。
Object.assign可以用来处理数组,但是会把数组视为对象。

Object.assign([1, 2, 3], [4, 5])  //[4, 5, 3]
let target = {
    age: 10,
    page: 1
};
let objA = {
    age: 12,
    year: 20,
    newObj: {
        sex: '男'
    }
};
Object.assign(target, objA);
console.log(target, '拷贝之后')
//            {
//                age:12,
//                newObj: {
//                    sex: '女'
//                },
//                page: 1
//                year: 20,
//            } 

//拷贝之后
// 同名属性会被覆盖

3 Object.is() 判断两个值是否相等,如果下列任何一项成立,则两个值相同

两个值都是undefined
两个值都是null
两个值都是true或者事false
两个值是由相同个数的字符串或相同的顺序组成的字符串
两个值指向同一个对象
两个值都是数字 都是—+0 -0 都是NaN

  	Object.is([], []);  //false
	Object.is(-0, -0);  //true

4 Object.keys(obj) 返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 (两者的主要区别是 一个 for-in 循环还会枚举其原型链上的属性)。

l

    let arr = ["a", "b", "c"];
    console.log(Object.keys(arr)); //["0", "1", "2"]
    /* Object 对象 */
    let obj = {
            age: 20,
            sex: '男'
        },
    keys = Object.keys(obj);  //["age", "sex"]
    values = Object.values(obj); //[20, 男]
    Object.values('foo')   //['f', 'o','o']

5 Object.values()方法返回一个给定对象自己的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。

字符串会先转成一个类似数组的对象。字符串的每个字符,就是该对象的一个属性。因此,Object.values返回每个属性的键值,就是各个字符组成的一个数组。

6 Object.entries() 方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组(二维数组)。

    const obj={foo:'bar',baz:'234'}. //[ foor,bar] [baz,234]

7 Object.hasOwnProperty()方法

判断对象自身属性中是否具有指定的属性 ,这个方法不包括判断在对象原型链上的方法

    var obj = { name:'fei'}    
    console.log(obj.hasOwnProperty('name'))//true
    console.log(obj.hasOwnProperty('toString'))//false

8 Object.getOwnPropertyNames()方法

Object.getOwnPropertyNames()方法返回对象的所有自身属性的属性名(包括不可枚举的属性)组成的数组,但不会获取原型链上的属性。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小超人rui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值