天天看點

es5和es6中函數的預設值

1、es5函數參數預設值

// es5函數參數預設值 
function demo(x,y){
    x=x !==undefined ?x : 5;
    y=y !==undefined ?y : 10;
    console.log(x,y);
}
demo();//5  10
demo(2,3);//2 3
           

2、es5對象預設值

// es5 obj預設值 {uname:'',age:0}
function demo2(obj) {
    // obj.uname = obj.uname !== undefined ? obj.uname : '';
    // obj.age = obj.age !== undefined ? obj.age : 0;
    var dobj = {
        uname: '',
        age: 0
    }
    for (let i in dobj) {
        for (let j in obj) {
            if (i == j) {
                dobj[i] = obj[j]
            }
        }
    }
    console.log(dobj)
}
demo2();//Object { uname: "", age: 0 }
demo2({
    uname: '小明',
    age: 20,
    sex: '男',
    abc: 'sdlfkjl'
});//Object { uname: "小明", age: 20 }
           

3、es6函數預設值

// es6預設值
function es6fn(x = 5, y = 10) {
    console.log(x, y)
}
es6fn(); //5  10
es6fn(6, 0); //6  0

function es6fn2({ x = 5, y = 10 } = {}) {
    console.log(x, y)
}
es6fn2();// 5 10
es6fn2({ x: 3, y: 7 }); // 3 7