Javascript Chrome-在函数参数中声明变量

Javascript Chrome-在函数参数中声明变量,javascript,function,google-chrome,variables,Javascript,Function,Google Chrome,Variables,我有一个非常恼人的错误,我在谷歌上找不到任何东西 以下代码适用于Firefox,但Chrome返回错误“uncaughtSyntaxerror:Unexpected token=” test = function(test = 'test'){}; 我的Chrome版本是23.0.1271.97-你知道我该如何解决这个问题吗 谢谢:)这不是“声明变量”,而是“为函数参数设置默认值”。考虑这一点: var x = 3; var test = function(x = 4){ console.

我有一个非常恼人的错误,我在谷歌上找不到任何东西

以下代码适用于Firefox,但Chrome返回错误“uncaughtSyntaxerror:Unexpected token=”

test = function(test = 'test'){};
我的Chrome版本是23.0.1271.97-你知道我该如何解决这个问题吗

谢谢:)

这不是“声明变量”,而是“为函数参数设置默认值”。考虑这一点:

var x = 3;
var test = function(x = 4){
  console.log(x)
};
console.log(x); // 3
test();         // 4
test(5);        // 5
换句话说,在该函数表达式中声明的
x
是该函数的局部

这可能很有用,但目前Firefox是唯一支持此功能的浏览器(ES6草案规范的一部分)


更准确地说,它只是Firefox 15+,如所示。

我很惊讶它能在Firefox上工作,但你为什么要这样做呢?我理解。有没有其他方法来设置默认值(除了在函数本身中用if声明它们之外)?我不知道。我想常用的方法是使用
var==void(0)和&(var=default\u值)
。但是您不应该重新声明它们:所有函数的参数名都已经在其变量上下文中定义(作为局部变量)。我会想出一个解决办法。只需多写几行代码,而不是:)谢谢!