繁体   English   中英

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

[英]Proper way to define default values for function arguments in JavaScript

自从我第一次遇到 JavaScript 以来,我一直使用默认值作为函数参数,例如:

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

但我注意到,现在我PhpStorm警告我说,这是错误的,并经过toCartBtn逗号,或右括号)的预期。

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

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

我知道(typeof toCartBtn == 'undefined')应该可以解决问题,但我真的很好奇为什么突然认为另一种方法在语法上是错误的。

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

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

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

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

您可以通过查看此有用资源来了解这一点 如果您查看“默认函数参数”,您会发现该版本的 IE 不支持它。

为了让 PHPStorm 接受这个语法,请确保在File | Settings | Languages & Frameworks | JavaScript中将JavaScript 语言版本设置为ECMAScript 6 File | Settings | Languages & Frameworks | JavaScript

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM