ES6学习 对象简洁语法以及对象新增 以及Promise

//对象的简洁语法  vue里面经常这样使用
    let name = "张三";
    let age = 22;
    let json = {
        name, //就是相当于 name:name
        age,   // age: age
        showA() {  //这边就是相当于 showA: function(){}
            return this.name
        }
    }
    console.log(json.showA())
    //小变形
    function show({ name,age }){
        console.log(name,age )
    }
    show({ name,age })


    //对象 Object.is() 比较两个值是否相等
    console.log(Object.is(NaN,NaN))
    console.log(Object.is(+0,-0))

    //Object.assign(目标对象,source1,source2) 用来合并参数 复制数组,对象都是可以的
    let jsons = {a:1}
    let json2 = {b:2,a:66}
    let json3 = {c:3}
     //如果有相等的话 后面的就会覆盖前面的 就放到一个新的对象里面
    let newjson = Object.assign({},json2,json3,jsons)
    console.log(newjson)
    //用assign来复制对象

console.log("----------------------------------------------------")
//Object.keys() Object.entries() Object.values() 循环json的时候进行的遍历出相应的key value
    let datas = {
        aa:111,
        bb:222,
        cc:333
    }
    //输出key值  ES6新增 for....of.... 遍历数组
    for(let key of Object.keys(datas)) {
        
        console.log(key)
    }
    //输出value值
    for(let value of Object.values(datas)) {
        console.log(value)
    }
    //输出数组
    for(let item of Object.entries(datas)) {
        console.log(item)
    }
    //输出键值对
    for(let [key,value] of Object.entries(datas)) {
        console.log(key,value)
    }
    //也可以这样使用 
     //let {keys,values,entries} = Object;


     //对象的扩展运算符
     let {x,y,...m} = {x:1,y:2,c:3,d:4}
     console.log(x,y,m)
     //小练习案例
     let json4 ={
         username: "张三",
         password: "123",
         sex: "男",
         age: 18
     }
     
     let copyjosn4 = {...json4}
     delete copyjosn4.age //删除 对象身上的属性
     console.log(copyjosn4)
     console.log(json4)


//resolve成功的回调函数
    //reject失败的回调函数
    let a = 6466;
    let promise = new Promise((resolve,reject)=> { //回调函数 
        if(a == 666) {
            resolve("成功")
        }else {
            reject("失败")
        }
    })
    // Promise.then(success,fail)
    promise.then(function(res){
        console.log(res)
    },function(err){
        console.log(err)
    }).catch(err=>{ //这个其实就是第二个参数的reject一个别名而已
        console.log(err)
    })
    //在Promise类身上有
    // Promise.resolve("aa"); //将现有的东西 转换成一个promise对象 并且是resolve状态,成功的状态
    // Promise.reject("bb");
    //用法如下 就是可以快速生成一个Promise对象
    let pro = Promise.resolve("这是成功的回调函数哦!!") 
    //上面这个类的resolve函数 等价于 new Promise(resolve=> {resolve("aaa")})
    pro.then(res=> {
        console.log(res)
    })
    let profile = Promise.reject("失败的回调函数!!!")
    //上面这个类的resolve函数 等价于 new Promise((resolve,reject)=> {resolve("aaa")})
    profile.then(res=> {//成功的回调

    },err=>{ //失败的回调
        console.log(err)
    })              
    //Promise.all([])把数组打包就行了 必须全部是 resolve才执行 
    let p1 = Promise.resolve("apple")
    let p2 = Promise.resolve("banana")
    let p3 = Promise.resolve("orange")
    Promise.all([p1,p2,p3]).then(res=> {
        console.log(res)
        //这边还可以使用结构
        let [a1,b1,c1] = res
        console.log(a1,b1,c1)
    })
    //Promise.race([p1,p2,p3]) //只要有一个resolve就会进行返回

猜你喜欢

转载自blog.csdn.net/HANGSOME123/article/details/86530850