设置形参的缺省值(默认值)

//========== 在函数体内处理参数缺省【推荐】 ==========//
function func1(num) {
    if (typeof num === 'undefined') {
        num = 9527;
    }

    console.log('func1 --->', num);
}


//========== 直接指定形参缺省值 ==========//
function func2(num = 9527) {
    console.log('func2 --->', num);
}


//========== 使用||运算符处理参数缺省 ==========//
function func3(num) {
    num = num || 9527; // 当 num 为 undefined、null、false、0 时会返回 || 右边的值

    console.log('func3 --->', num);
}


func1();     // func1 ---> 9527
func1(1024); // func1 ---> 1024


func2();     // func2 ---> 9527
func2(1024); // func2 ---> 1024


func3();     // func3 ---> 9527
func3(1024); // func3 ---> 1024


//========== 总结 ==========//
// 1、设置形参的缺省值(默认值)推荐通过在函数体内判断形参typeof是否为'undefined'来实现,
// 2、虽然直接指定形参缺省值更加简单,但它要求浏览器支持ES6标准,某些低版本浏览器不支持这种方式。



function Toast(options) {
    if (typeof options === 'undefined') {
        options = {};
    }

    // 构造配置(用户配置覆盖默认配置)
    this.options = {
        content: ('content' in options) ? options.content : '',
        width: ('width' in options) ? options.width : 300,
        height: ('height' in options) ? options.height : 180,
        time: ('time' in options) ? options.time : 1500,
        debug: ('debug' in options) ? options.debug : false,
    };

    // 打印当前配置
    this.printOptions = function () {
        let entries = Object.entries(this.options);
        entries.forEach(([key, value]) => {
            console.log('%s => %s', key, value);
        });
    };
}


// 完全使用默认配置
let toast1 = new Toast();
toast1.printOptions();
// content =>
// width => 300
// height => 180
// time => 1500
// debug => false


console.log('');


// 只修改两个配置项,其余使用默认配置
let toast2 = new Toast({content: '系统错误', debug: true});
toast2.printOptions();
// content => 系统错误
// width => 300
// height => 180
// time => 1500
// debug => true

Copyright © 2024 码农人生. All Rights Reserved