将值赋给函数的隐式声明的局部变量被认为是不好的做法?

时间:2015-08-24 03:06:42

标签: javascript coding-style

问题:为函数的隐式声明的局部变量赋值是不好的做法?如果是这样,分配函数隐式声明的局部变量

的优先方法是什么
function foo(baz) {
  baz = 3;  //this is implicitly declared by the function's argument baz


}
foo()

2 个答案:

答案 0 :(得分:3)

我不认为这是一种不好的做法(如有害的),只是不是一个好的做法。一个有益的效果是将代码长度减少4个字符,因为它替换了函数中的变量声明。这仅适用于第一个变量,之后没有任何好处,如果声明了其他变量,则没有任何好处。

但是,代码可读性受到影响,功能签名不必要地被混淆,例如

function foo(bar) {
  /* some code */
}

让用户想知道应该传递给bar的内容,而:

function foo() {
  var bar;
  /* some code */
}

明确指出 foo 不接受任何参数。

正式参数在声明之前处理,但我看不出任何好处或副作用。

答案 1 :(得分:1)

我认为这有点无用。因为你传递的价值并不重要,你只需用你想要的任何东西覆盖它。所以,这不是一个坏习惯,只是一个无用的功能。请不要冒犯。

这让我想起了:

function random_number() {
    return 7;
}