javascript函数参数中的命名冗余
naming redundancy in javascript function parameters
如何设置定时参数的默认值?
function active_timer(timing){
interval = setInterval(function(){
console.log('interval');
}, timing);
}
我可以这样做
function active_timer(timing){
var time = 1000;
if(timing){
time = timing
}
interval = setInterval(function(){
console.log('interval');
}, time);
}
我的问题是命名,时间和时间实际上是一样的,我怎么能在javascript中编写更少的冗余代码?
参数和其他变量一样是一个(局部)变量。
timing = timing || 1000;
你可以在你的函数中添加一个check,
if (typeof timing == 'undefined')
timing = defaultValue;
或(三元运算符)
timing = (typeof timing == 'undefined') ? defaultValue : timing;
或
timing = timing || defaultValue
示例typeof
function x(y)
{
if (typeof y == 'undefined')
y = 5;
return y;
}
alert(x()); // 5
alert(x(25)); // 25
JSFiddle
阅读材料
typeof
MDN -默认参数
在ES2015(又名"ES6")和以后的中,你可以为参数指定一个默认值:
// ES2015+
function active_timer(timing = 1000) {
// -------------------------^^^^^^^
interval = setInterval(function(){
console.log('interval');
}, timing);
}
在ES5和更早的版本(从技术上讲,所有这些也适用于ES2015+):你可以给函数参数赋值,所以你不需要一个单独的变量,除非你想要一个。如果不带参数调用active_timer
,则timing
的值为undefined
。
你有几个选项来决定你是否需要应用默认值:
if (timing === undefined) {
timing = 1000;
}
或
if (typeof timing === "undefined") {
timing = 1000;
}
或
if (arguments.length === 0) { // NOT RECOMMENDED
timing = 1000;
}
(不推荐,因为在函数中使用arguments
会影响它的性能。)
或者,如果您知道active_timer
永远不会被0
调用,您可以使用功能强大的||
操作符:
function active_timer(timing){
interval = setInterval(function(){
console.log('interval');
}, timing || 1000); // Only if you know timing won't be 0
}
如果a || b
为true,则a
的值为true;如果a
为false,则b
的值为false。假值为0
、""
、undefined
、null
、NaN
,当然还有false
。
您可以使用ES2015的默认参数和箭头函数:
function activeTimer(timing = 1000) {
setInterval( () => {
console.log('interval:' + timing);
}, timing);
}
activeTimer();
参见小提琴
相关文章:
- 缓存的最佳实践.避免冗余缓存
- UMD:正在分配给模块,导出冗余
- 如何更正阵列中的这种冗余
- Regex删除涉及零或一的冗余乘法/除法
- 删除方法中的冗余代码
- 多选择器冗余
- 简化冗余jquery's代码
- 排列具有相同数据的多个对象(减少冗余)
- Meteor模板-继承或外包事件以避免代码冗余
- HTML-减少HTML代码冗余
- 如果我两次使用相同的反应/冗余组件,它们会共享状态吗?
- 等待多个 ipc 调用完成,然后再继续电子/冗余
- 编写函数以防止冗余
- ExtJS - 如何创建可重用的函数以避免代码冗余
- 使用 JavaScript + jQuery 函数检查表行冗余的性能降低
- 如何在Javascript中重写函数时减少冗余代码
- 用javascript减少冗余函数
- 删除javascript中的冗余函数
- javascript函数参数中的命名冗余
- 为什么要将这些函数赋值给带有“冗余”的对象?函数名