ES6 之 对象的扩展

属性的简洁表示法

    let book = '234';
    let good = '432';
    let obj01 = {
      book,
      good
    }
    console.log(obj01);

方法名的name属性

.....

Object.is()

    // Object.is() 用来比较俩个值是否严格相等,与 === 行为基本一致
    // == 会自动转化数据类型
    // === NaN不等于 NaN 以及 +0 和 -0
    console.log(Object.is('foo','foo')); // true
    console.log(Object.is({},{})); // false
    console.log(Object.is(+0,-0)); // false
    console.log(Object.is(NaN,NaN)); // true
    // +0 不等于 -0 NaN 等于自身

Object.assign()

    // Object.assign() 方法将源对象(source)的所有可枚举的属性复制到目标对象上
    let target = { a: 1 }
    let source1 = { b: 2 }
    let source2 = { c: 3 }
    let a = Object.assign(target, source1, source2) // {a: 1, b: 2, c: 3}
    console.log(a);
    // 同名属性 ,后面的属性 会 覆盖前面的属性
    // 如果只有一个参数,Object.assign会直接返回该参数
    // 如果参数不是对象,则会先转成对象,然后返回
    let target2 = { a: 1 }
    let b = Object.assign(target2, undefined) // {a: 1}
    console.log(b);
    let target3 = { a: 1 }
    let c = Object.assign(target3, null) // {a: 1}
    console.log(c);

ES6 属性的遍历

    // for ... in 
    // Object.key(obj) // 返回一个数组,包括对象自身(不含继承)的所有可枚举属性
    // Ojbect.getOwnPropertyNames(obj) // 返回一个数组
    // Ojbect.getOwnPropertySymbols(obj) // 返回一个数组
    // Reflect.ownKeys(obj) // 返回一个数组

猜你喜欢

转载自www.cnblogs.com/houfee/p/10055695.html