JS中的默認參數怎么用?有什么作用?

JavaScript 中的默認參數用于在函數調用時未傳參或參數為 undefined 時提供替代值。其核心作用是提升函數容錯能力,避免意外錯誤。基本寫法是在定義參數時賦默認值,如 function greet(name = “guest”)。只有參數為 undefined 時才會使用默認值,NULL、空字符串、0、false 等不會觸發。常見用途包括:1. 提供可選參數;2. 設置配置對象默認值;3. 異步請求中設定默認超時時間;4. 工具函數中實現通用行為。默認值可為表達式或函數調用,如 new date() 或 a * 2,并且后參數可引用前參數。注意事項有:1. 默認值僅在參數為 undefined 時生效;2. 默認值表達式惰性求值,在每次調用時執行;3. 避免與解構混用以免引發副作用。合理使用默認參數能增強代碼健壯性和可讀性,減少邊界判斷。

JS中的默認參數怎么用?有什么作用?

JavaScript 中的默認參數是一個非常實用的功能,尤其在寫函數的時候,能讓我們更靈活地處理未傳參或 undefined 的情況。它的核心作用就是:當調用函數時沒有傳遞某個參數,或者該參數是 undefined 時,使用一個默認值來代替


默認參數的基本寫法

默認參數的語法很簡單,在定義函數參數的時候直接給參數賦值即可:

function greet(name = "Guest") {   console.log("Hello, " + name); }

上面這個例子中,如果調用 greet(“Tom”),輸出的就是 “Hello, Tom”;如果調用 greet() 或者 greet(undefined),就會使用默認值 “Guest”,輸出 “Hello, Guest”。

注意:只有當參數是 undefined 的時候,默認值才會生效。如果傳的是 null、空字符串或者其他假值(比如 0、false),默認值不會被使用。


默認參數的實際用途

默認參數最常見的用途,是讓函數對缺失的參數有容錯能力,避免運行時報錯或出現意外結果。

舉個例子,假設你寫了一個計算價格的函數:

function calculatePrice(quantity, pricePerUnit, taxRate = 0.1) {   return quantity * pricePerUnit * (1 + taxRate); }

這里 taxRate 通常是個可選參數。如果不傳,就按 10% 稅率計算。這樣寫可以讓函數接口更簡潔,也更容易維護。

還有一些場景適合用默認參數:

  • 函數需要配置對象時,可以為整個對象設置默認值
  • 異步請求封裝中設置默認超時時間
  • 工具函數中提供通用行為,同時允許定制化

默認參數也可以動態計算

默認參數不只是能寫固定值,還可以是一個表達式,甚至調用其他函數:

function logTime(time = new Date()) {   console.log("Log time:", time); }

每次不傳參數調用 logTime() 時,都會生成當前時間。再比如:

function multiply(a, b = a * 2) {   return a * b; }

這里的 b 默認等于 a * 2,所以 multiply(3) 返回的是 3 * 6 = 18。

需要注意的是,默認參數的作用域是獨立的“臨時作用域”,也就是說后面的參數可以引用前面的參數。


使用默認參數時要注意的地方

雖然默認參數很好用,但也有一些細節需要注意:

  • 默認值只會在參數為 undefined 時觸發
    比如傳了 null、空字符串、false、0 都不會觸發默認值。

  • 默認參數是惰性求值的
    默認值表達式會在每次函數調用時重新執行,而不是定義函數時一次性計算。

  • 不要把默認參數和解構混用導致副作用
    比如下面這種寫法可能會讓人困惑:

    function foo({ x = 1 } = {}) {   console.log(x); }

    這種嵌套結構容易出錯,理解起來也復雜一些,建議保持簡單清晰。


基本上就這些。默認參數看似簡單,但用好了能讓代碼更健壯、易讀,也能減少很多邊界判斷的麻煩。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享