问题:为函数的隐式声明的局部变量赋值是不好的做法?如果是这样,分配函数隐式声明的局部变量
的优先方法是什么function foo(baz) {
baz = 3; //this is implicitly declared by the function's argument baz
}
foo()
答案 0 :(得分:3)
我不认为这是一种不好的做法(如有害的),只是不是一个好的做法。一个有益的效果是将代码长度减少4个字符,因为它替换了函数中的变量声明。这仅适用于第一个变量,之后没有任何好处,如果声明了其他变量,则没有任何好处。
但是,代码可读性受到影响,功能签名不必要地被混淆,例如
function foo(bar) {
/* some code */
}
让用户想知道应该传递给bar的内容,而:
function foo() {
var bar;
/* some code */
}
明确指出 foo 不接受任何参数。
正式参数在声明之前处理,但我看不出任何好处或副作用。
答案 1 :(得分:1)
我认为这有点无用。因为你传递的价值并不重要,你只需用你想要的任何东西覆盖它。所以,这不是一个坏习惯,只是一个无用的功能。请不要冒犯。
这让我想起了:
function random_number() {
return 7;
}