Chrome 67(撰写本文时的最新版本)让我可以这样做
function foo(x, y) {
var x = 5;
console.log(x, y);
}
foo(1,2);
// prints 5 2
但不是这个
function foo(x, y) {
let x = 5;
console.log(x, y);
}
foo(1,2);
// Throws a SyntaxError: Identifier 'x' has already been declared
这种行为是标准定义的吗?
使用 oldvar
关键字,您可以自由地多次声明一个变量而不会出现问题(嗯……这本身就是一个问题)。
在const
与let
关键字有更好的表现。在您的情况下:您不需要重新声明,x
因为它已经声明为foo
函数的参数,因此您可以直接为其分配一些东西(覆盖参数不是很干净,但合法)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句