簡體   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