变量声明作为参数的优点是什么?

时间:2015-01-28 20:27:46

标签: javascript variables optimization scope functional-programming

此代码的优点是什么:

function doSomething(a, b, c) {
  a = 'some value';
  b = 23;
  c = [];
  // do some useful stuff with a, b and c
}

这段代码:

function doSomething() {
  var a = 'some value';
  var b = 23;
  var c = [];
  // do some useful stuff with a, b and c
}

我在github和一些图书馆看了几次这个技术......

2 个答案:

答案 0 :(得分:1)

var一次接受多个变量,因此第二个代码段可以重写为

function doSomething() {
  var a = 'some value',
      b = 23,
      c = [];
  // do some useful stuff with a, b and c
}

第一个片段试图让脚本变得更小"通过四个字符var,但实际上它不仅令人困惑和混乱,而且更长而不是上面的正确字符,因为每个var名称都会重复两次。

回答你的问题:没有任何好处。别这么做。

答案 1 :(得分:0)

我认为您在第一个构造中缺少某些东西,因为如果该函数不会使用传递给它的值,则没有理由声明该函数的参数。实际上,这只会使代码误导任何看到函数签名的人并认为它需要三个参数。您不应该像第一个示例那样编写代码,因为函数定义意味着您可以传递它将在不是这种情况时使用的数据。

第二个构造只是声明三个局部变量并初始化它们以便在函数中使用。

正如您所编写的那样,两个版本的代码的运行方式没有任何有意义的区别,因为如果选择的话,可以像局部变量一样使用命名参数。请注意,第一个代码块doSomething.length3,第二个代码块为0,但是很少使用该属性,因此存在技术差异。


我想你可以说第一个版本更短(节省了几个字节),但是保存一些字节会冒着编写具有欺骗性的代码的风险,这很少是一个明智的选择。最好将代码编写为尽可能清楚地读取或使用它的任何人,然后让最小化程序使其尽可能小以进行运行时优化(知道最小化的代码不是为人类消费而设计的)。 p>