函數簽章方法的預設值


javascript 函式的簽章方法,也就是輸入的參數可以有預設值,可以先參考一下MDN的文件說明

可以透過這個方式,將原本由外部注入的事件若沒有處理,也可以有預設的方式來做 例如,移除陣列中的某個數字,如果找不到,就拋出一個例外,同時也提供讓發生這件事情的時候,程式該怎麼處理,也能夠由外部來指定的彈性

function removeSomething(
  source,
  value,
  fnIfAbsent = () => {
    throw new RangeError();
  }
) {
  const index = source.indexOf(value);
  if (index === -1) fnIfAbsent(index);
  else source.splice(index, 1);
}

let value = 3;
let data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
removeSomething(data, value, val => {
  console.log(`集合內沒有 ${value} 這個值`);
});
console.log(data); // [ 1, 2, 4, 5, 6, 7, 8, 9, 10 ]