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 (-)

2025年8月25日 星期一

關於 Unary negation (-)

關於  Unary negation (-)

前言

  在變數前加一個負號,也就是 [ developer.mozilla.org ] Unary negation (-) ,直覺得會覺得是把變數變成負值,但有一些跟寫得不一樣,在此把學習的過程做個紀錄。


內容

   [ developer.mozilla.org ] Unary negation (-)  的功能確實是把變數變成數值,範例如下

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


範例開頭對 Number 使用,沒問題跟預期一樣,但其實

[ developer.mozilla.org ] Unary negation (-) 不只是對 Number 有效,也對 String 有效,如果 String 本身可以被 Pasre 成 Number,那不論是是正值或負值都會成功轉換,但如果不能被 Parser ,會回傳 NaN 。


參考資料

[ developer.mozilla.org ] Unary negation (-)

2025年8月18日 星期一

直接喚起宣告的匿名函式

 直接喚起宣告的匿名函式

前言

  最近看到 [ developer.mozilla.org ] void operator ,發現遽然可以直接喚起宣告的匿名的函式,在此把學習的過程做個紀錄。


內容

  範例如下

void function (){
  console.log('exe!');//exe!
}();
//follow will has error!
// function (){
//   console.log('exe!');
// }();


一班匿名函式宣告後會用變數來承接,以便於喚起,但只要透過 [ developer.mozilla.org ] void operator 後就可以直接喚起,不需要變數承接,用法也很簡單,在匿名函式前加入 void ,接著在宣告後的地方增加 () ,如果也需要輸入引數可在這個 () 裡增加,如此就可以喚起該匿名函式!如果不透過在前方加 void 的方式,直接在後方加 () 喚起是不可行的!


參考資料

[ developer.mozilla.org ] void operator