js对象的扩展

2020-06-21  本文已影响0人  pengkiw

1 属性简洁表示法 && 属性名表达式

let name = 'kiw';
let age = '18';
let s = 'school';
let obj = {
    name,
    age,
    [s]: 'imooc',
    study() {
        console.log(this.name + '正在学习');
    }
}

2 Object.is()

console.log(Object.is(2, '2')) //false
console.log(Object.is(NaN, NaN)) //true 可以判断NaN
console.log(Object.is(+0, -0)) //false
let obj1 = {
    name: 'kiw',
    age: 18,
}
let obj2 = {
    name: 'kiw',
    age: 18,
}
console.log(Object.is(obj1, obj2)) //false 引用类型 相当于比较两个地址 所以结果为false

3 扩展运算符 与 Object.assign()

let x = {
    a: 3,
    b: 4
}
let y = {
    c: 5,
    a: 6
}
Object.assign(y, x); //合并两个对象 相同属性后面覆盖前面
console.log(y);

4 in

let x = {
   a: 3,
   b: 4
}
console.log('a' in x); //true   判断x对象中是否有a属性
console.log('d' in x); //false

5 对象的遍历方式

//for in
let obj = {
    name: 'kiw',
    age: '18',
    school: 'imooc',
}
for (const key in obj) {
    console.log(key, obj[key]) 
} 
let obj = {
    name: 'kiw',
    age: '18',
    school: 'imooc',
};
Object.keys(obj).forEach(key => {
    console.log(key, obj[key])
})

Object.getOwnPropertyNames(obj).forEach(key => {
    console.log(key, obj[key])
})
上一篇下一篇

猜你喜欢

热点阅读