在JavaScript中为函数参数定义默认值的正确方法

时间:2017-03-13 16:41:38

标签: javascript internet-explorer phpstorm

自从我第一次遇到JavaScript以来,我总是使用函数参数的默认值,例如:

function addToCartCallback3(responseData, toCartBtn = null) {
    // ...
}

但是我注意到现在我的PhpStorm警告我这是错的,之后 <{1}}逗号toCartBtn或右括号,是预期的。

上面的代码在Chrome和Firefox中运行良好,但会杀死IE11中的所有JavaScript。 (在IE11中,控制台告诉我与PhpStorm相同)

为什么这段代码错了,或者我应该使用什么?

我知道)应该做的伎俩,但我真的好奇为什么另一种方法突然被认为是语法错误。

3 个答案:

答案 0 :(得分:7)

IE11不支持默认参数。这是浏览器无法识别的JavaScript语言中的ES6扩展。

您可以通过查看this useful resource来查看此内容。如果您查看&#39;默认功能参数&#39;你会发现IE版本不支持它。

答案 1 :(得分:7)

如上所述,这仅适用于ES6浏览器,因为ES6将包含此默认语法。 所以在IE11上你必须将默认值放在正文中:

function addToCartCallback3(responseData, toCartBtn) {
  toCartBtn = toCartBtn || 'defaultHere';
}

请注意,如果您的默认值应为null,则可以不使用默认值,因为在大多数情况下,未定义的参数的行为方式与值为null的参数的行为方式相同。

答案 2 :(得分:3)

要使PHPStorm接受此语法,请务必在ECMAScript 6

中将 JavaScript语言版本设置为File | Settings | Languages & Frameworks | JavaScript