一些好的编程习惯

函数定义

javascript中函数的入参没有C或者Java中那么严格,即当你在javascript中定义了一个函数,例如 foo,那么在后面的代码中调用 foo 的时候,不管调用 foo 的入参有几个,javascript 都是执行你最新定义的 foo 函数。

function foo( arg1 ) {
  arg1 = arg1 || 0;
  return arg1 + 1;
}

function foo( arg1, arg2 ) {
  arg1 = arg1 || 0;
  arg2 = arg2 || 0;
  return arg1 + arg2; 
}

console.log(foo(1));  // 1

 可以看到,这里javascript运行的函数没有像C或者Java中使用第一个foo函数,所以这样我们在定义javascript函数的时候,对于函数的入参的处理很灵活。在看他人写的api文档的时候,总是可以看到有的函数的参数有默认值这些的。所以定义函数的时候我们可以像类似下面的方式处理。

// foo 函数最多接受3个入参
// arg1: 默认值为 0
// arg2: 默认值为 1
// arg3: 默认值为 2
function foo(arg1, arg2, arg3) {
  if(arguments.length == 2) {
    arg3 = arg2;
    arg2 = arg1;
    arg1 = 0;
  } else if(arguments.length == 1) {
    arg3 = arg1;
    arg2 = 1;
    arg1 = 0;
  } else if(arguments.length == 0) {
    arg3 = 2;
    arg2 = 1;
    arg1 = 0;
  }
  return arg1 + arg2 + arg3;
}

foo(2,3,4); // 9
foo(3,4);   // 7
foo(4);     // 5
foo();      // 3

转载于:https://my.oschina.net/kuangcaibao/blog/538470

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值