//========== 在函数体内处理参数缺省【推荐】 ==========// 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