ES6对象的拓展

Posted rickyctbur

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6对象的拓展相关的知识,希望对你有一定的参考价值。

ES6的简易写法:对比ES5的写法更加的简洁明了

    let name = ‘小明‘ , age = 15;
    let es5 = 
        name : name,
        age : age,
    
-------------------------------------- let es6
= name, age
两个的结果都是:name: "小明", age: 15
    let es5_method = 
        hello : function()
            console.log(‘hello‘)
        
    
    let es6_method = 
        hello()
            console.log(‘hello‘)
        
    

ES6对象新增的方法:

    //Object.is()方法作用类似于 ===
    console.log(Object.is(‘你好‘,‘你好‘),‘你好‘===‘你好‘) // true  true
    console.log(Object.is([1,2,3],[1,2,3]),[1,2,3]===[1,2,3])// false false
    let a =  name1 : ‘小明‘,b =  name2 : ‘小强‘,c =  name2 : ‘小刚‘;
    //Object.assign()方法将参数第一个对象作为母板其余参数合并到第一个参数中 若键名重复则以最后一个值替换前面的值
    console.log(Object.assign(a,b,c)) // name1: "小明", name2: "小刚"
    let test = 
        name : ‘小强‘,
        age : 25,
        hobby : ‘打篮球‘
    
    for(let [key,value] of Object.entries(test))
        console.log([key,value])
        //(2) ["name", "小强"]   (2) ["age", 25]    (2) ["hobby", "打篮球"]
    

解构赋值:

const obj = 
    first : ‘第一个‘,
    second : ‘第二个‘

const first,second = obj;
//结果: first => ‘第一个‘ second => ‘第二个‘
const player = 
        nickname: ‘感情的戏∫我没演技?‘,
        master: ‘东海龙王‘,
        skill: [
            skillName: ‘龙吟‘,
            mp: ‘100‘,
            time: 6000
        ,
            skillName: ‘龙卷雨击‘,
            mp: ‘400‘,
            time: 3000
        ,
            skillName: ‘龙腾‘,
            mp: ‘900‘,
            time: 60000
        ]
    ;
    //获取player的属性值
    const  nickname  = player;
    const  master  = player;
    //skill1 => skill中的第一项josn 以此类推
    //const skill : [skill1,skill2,skill3] = player;

    // skillName 表示第二项的 skillName
    //因为重名了 所以第三项 skillName 用 sklName 替代
    // const  skill: [ skill1,  skillName , skillName: sklName  ]  = player;

扩展运算符:

const obj = 
    first : "第一项",
    second : "第二项",
    third : "第三项",
;
//将除 third 项的其他所有项组合成对象的形式赋值给other
const third,...other = obj;
const obj1 = 
    one : 1,
    two : 2
;
//将obj1合并到obj2中
const obj2 = 
    three : 3,
    four : 4,
    ...obj1
;

 默认值:

let girlfriend = 
    name: ‘小红‘,
    age: undefined,
;
//当属性值为undefined或者为定义属性时可以直接给属性赋值

let  name, age = 24, hobby = [‘学习‘]  = girlfriend;

获取多个函数返回值:

function p()
        return [
            
                name : "小明",
                age : 15
            ,
            
                name : "小红",
                age : 20
            
        ]
    
    const [name : name1,name : name2] = p()
    //结果: name1 => 小明 name2=> 小红

以上是关于ES6对象的拓展的主要内容,如果未能解决你的问题,请参考以下文章

ES6 函数拓展

ES6 数据拓展Number,对象方法,三种模块化应用,npm包导入和转换

ES6正则拓展

ES 6 系列 - 对与常用对象的拓展 api

es6 对象扩展运算符 res运算符

ECMAScript 6.0