2025年9月29日 星期一

在預設引數( Default parameters)裡使用物件為引數的解構賦值

 在預設引數( Default parameters)裡使用物件為引數的解構賦值

前言

  在之前的 在預設引數( Default parameters)裡使用解構賦值 裡使用陣列來示範引數,但其實還可以使用物件的方式當引數,在此把學習的過程做個紀錄。


內容

  範例如下

function call({ str = 'default' , num = -1} = {}){
  console.log(`${str}_${num}`);
}
//
call();//default_-1
call( { str : 'Jack' } );//Jack_-1
call( { num : 9999 } );//default_9999
call( { str : 'Tim' , num : 1234 } );//Tim_1234


用法和陣列時一樣,只是語法改成 {} 來包覆,第一例都不傳變數,如同預期會出現預設的數值,而非 undefined 之類的數值,第二例只給 str 所以 num 的部分還是維持預設值,第三例只給 num 所以 str 的部分維持預設值,最後示範 str 與 num 都不用預設值。


參考資料

[ developer.mozilla.org ] Default parameters

[ developer.mozilla.org ] 解構賦值


相關文章與資料

在預設引數( Default parameters)裡使用解構賦值

2025年9月22日 星期一

在預設引數( Default parameters)裡使用解構賦值

 在預設引數( Default parameters)裡使用解構賦值

前言

  解構賦值可以在預設引數( Default parameters)裡使用,在此把學習的過程做個紀錄。


內容

  範例如下

function call( [ x = 1 , y = 2 , z = 3] = []){
  return x + y + z;
}
//
console.log( call() );//6
console.log( call( [] ) );//6
console.log( call( [ 4 ] ) );//9
console.log( call( [ 4 , 5 ] ) );//12
console.log( call( [ 4 , 5 , 6 ] ) );//15


當都不給變數,如預期就是 6 ,接著第二例給空陣列,結果也是 6 ,解構賦值沒覆蓋到的值,就會是預設值,可以在第三例到第五例看到這樣狀況。


參考資料

[ developer.mozilla.org ] Default parameters

[ developer.mozilla.org ] 解構賦值


相關文章與資料

關於預設引數( Default parameters)

初探解構賦值

2025年9月15日 星期一

注意預設引數( Default parameters)對 undefined 的處理

 注意預設引數( Default parameters)對 undefined 的處理

前言

  在之前的 關於預設引數( Default parameters) 提及預設引數( Default parameters),不過發現它對

 undefined 對反應要注意,在此把學習的過程做個紀錄。


內容

  範例如下

function call( arg = 1 ) {
  console.log( arg );
}

call();//1
call( undefined );//1 
call( null );//null 


預設引數( Default parameters)對 undefined 的處理是特別的,如果不輸入引數時其實是可以視同輸入 undefined ,這可以在範例的第一例與第二例看到,那 null 又是如何呢? null 的行為和一般的情況一樣,不會像 undefined 一樣視同沒輸入。


參考資料

[ developer.mozilla.org ] Default parameters


相關文章與資料

關於預設引數( Default parameters)

2025年9月8日 星期一

關於預設引數( Default parameters)

 關於預設引數( Default parameters)

前言

  不知從什麼時候開始 JavaScript 開始支援預設引數( Default parameters) ,在此把學習的過程做個紀錄。


內容

  範例如下

function call( name = 'DefaultName' ){
  return name
}
//
console.log( call() );//DefaultName
//
function testCall1( val1 = 1 , val2 ){
  return val1 + val2;
}
console.log( testCall1(1) );//NaN
//
function testCall2( val1 , val2 = 1 ){
  return val1 + val2;
}
console.log( testCall2(1) );//2


預設引數( Default parameters) 用起來很簡單,只要在宣告時在引數後方給予預設值即可使用,不過要注意多個引數又有的沒預設引數的狀況,像 testCall1() 的結果遽然是 NaN ,理由也很簡單引為匹配引數時並不如預期,預期是 testCall1( 1(default) ,1) ,但最後匹配的是 testCall1( 1 , undefined ) ,像 testCall2() 這樣就沒問題,會如預期一樣匹配,所以有預設值的引數要盡量向後擺。


參考資料

[ developer.mozilla.org ] Default parameters

2025年9月1日 星期一

關於 Unary plus (+)

 關於 Unary plus (+)

前言

  在之前的 關於 Unary negation (-) 了解 Unary negation ,這次來學習它的相似處理 Unary plus,在此把學習的過程做個紀錄。


內容

  範例如下

let num = -4;
console.log( +num );//-4
console.log( +"123" );//123
console.log( +"-456" );//-456
console.log( +"ABC" );//NaN


Unary plus 用起來跟 Unary negation 是一樣的!在 Numbe 有加跟沒加是一樣的, Unary negation  還有負負得正的作用。在 String 方面也是會對可以 Parse 成 Number 的內容做轉換,如果不能則回傳 NaN。


參考資料

[ developer.mozilla.org ] Unary plus (+)


相關文章與資料

關於 Unary negation (-)