JavaScript函數的默認參數(default parameter)


JavaScript函數的默認參數(default parameter)

js函數參數的默認值都是undefinedES5里,不支持直接在形參里寫默認值。所以,要設置默認值,就要檢測參數是否為undefined,按需求賦值。

function multiply(a, b) {
  b = typeof b !== 'undefined' ?  b : 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 0

上面是MDN的相關例子,是比較嚴謹的寫法。不推薦下面的寫法:

function multiply(a, b) {
  b = b ?  b : 1;  // b = b || 1;

  return a*b;
}

multiply(5); // 5
multiply(5, 0); // 5

因為,在布爾類型環境中undefined, 0, "", NaN, null會被轉換成 false

進一步,還可以先利用arguments對象,再設置默認值 :

function multiply(a) {
  var b = typeof arguments[1] !== 'undefined' ? arguments[1] : 1;

  return a*b;
}

 multiply(5); // 5
 multiply(5, 0); // 0

ES6里已經支持默認參數了,直接寫就好啦:

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

multiply(5); // 5

ES6還支持解構賦值來設置默認參數:

jQuery.ajax = function (url, {
  async = true,
  beforeSend = function () {},
  cache = true,
  complete = function () {},
  crossDomain = false,
  global = true,
   // ... more config
}) {
   // ... do stuff
};

更詳細的介紹,請看阮一峰的ECMAScript 6 入門函數的拓展

參考文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM