zoukankan      html  css  js  c++  java
  • es6-8 对象扩展

    简洁表示

    {
        let a = 1;
        let b = 2;
        // es5
        let es5 = {
            a: a,
            b: b
        }
        // es6
        let es6 = {
            a,
            b
        }
        console.log(es5, es6); // {a: 1, b: 2} {a: 1, b: 2}
    
        // 对象中有方法
        let es5_method = {
            hello: function () {
                console.log('es5 hello')
            }
        }
        let es6_method = {
            hello () {
                console.log('es6 hello')
            }
        }
        es5_method.hello(); // es5 hello
        es6_method.hello(); // es6 hello
    }

    属性表达式

    如果 key 需要根据变量变化, es6 可以直接给 key 赋值
    {
        let a = 'b'
        let es5_obj = {
            a: 'c'
        }
    
        let es6_obj = {
            [a]: 'c'
        }
        console.log(es5_obj) // {a: "c"}
        console.log(es6_obj) // {b: "c"}
    }

    Object新增方法

    {
        // 判断两个值是否相等, 跟三个等号在功能上是一样的
        console.log(Object.is('abc', 'abc')); // true
        console.log(Object.is('1', 1)); // false
        console.log(Object.is([], [])); // false 数组是引用类型, 严格来讲两个数组引用的是不同地址
        console.log(Object.is({}, {})); // false 对象是引用类型, 严格来讲两个对象引用的是不同地址
    
        // 拷贝对象 Object.assign 是浅拷贝, 只修改引用地址, 而不是把所有值拷贝下来
        // PS: 拷贝的是只有自身对象的属性, 如果这个对象有继承, 不会拷贝继承的属性, 也不能拷贝这个对象中不可枚举的属性
        console.log('拷贝', Object.assign({a: 'a'}, {b: 'b'})); // {a: "a", b: "b"}
    
        // Object.entries() Object.keys() Object.values() 跟数组用法一致
        let test = {k: 123, o: 456}
        for (let [key, value] of Object.entries(test)) {
            console.log(key, value); // k-123 o-456
        }
    }

    扩展运算符

    {
        let {a, b, ...c} = {a: 'aaa', b: 'bbb', c: 'ccc', d: 'ddd'}
        console.log(a, b, c) // aaa bbb {c: 'ccc', d: 'ddd'}
    }
  • 相关阅读:
    检测后缀表达式的合法性
    对表达式进行空白符预处理
    字符串替换
    中缀表达式的计算
    Linux shell编程
    Linux常用shell
    [转载]shell脚本编写规范
    [转载]Linux文件类型
    Linux的进程
    Linux进入命令行模式
  • 原文地址:https://www.cnblogs.com/helzeo/p/11814046.html
Copyright © 2011-2022 走看看