2026年4月5日 星期日

初探 Array.toReversed()

 初探 Array.toReversed()

前言

  Array 提供直接將所有的內容倒過來的功能,也就是 Array.toReversed() ,在此把學習的過程做個紀錄。


內容

  範例如下

let ar = ["Jan", "Feb", "Mar", "Apr"];
console.log( ar.toReversed() );//["Apr", "Mar", "Feb", "Jan"]
console.log( ar );//["Jan", "Feb", "Mar", "Apr"]


Array.toReversed() 用起來的特性類似 初探 Array.toSorted() ,都是產生一個新的 Array 來得到結果,所以可以看到在 Array.toReversed() 後,原本的內容並不會改變。


參考資料

[ developer.mozilla.org ] Array.prototype.toReversed()


相關文章與資料

初探 Array.toSorted()

2026年3月30日 星期一

關於 Set.isSupersetOf()

 關於 Set.isSupersetOf()

前言

  在之前的 關於 Set.isSubsetOf() 介紹內容是否完全包含的檢查,不過是引數是否完全包含喚起的 Set ,也許用起來讓你覺得不直覺,所以有提供喚起的 Set 是否完全包含引數,也就是 Set.isSupersetOf() ,在此把學習的過程做個紀錄。


內容

  範例如下

let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
let setC = new Set(['a','b','c','A','B','C']);
console.log( setC.isSupersetOf( setB ) );//flase
console.log( setC.isSupersetOf( setA ) );//true


這次與 Set.isSubsetOf() 不一樣,是喚起的 Set 是否完全包含引數的 Set ,所以喚起 Set 是 setC ,其餘的就和 Set.isSubsetOf() 的範例是一樣的。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

關於 Set.difference()

關於 Set.intersection()

關於 Set.symmetricDifference()

關於 Set.isDisjointFrom()

關於 Set.isSubsetOf()

2026年3月23日 星期一

關於 Set.isSubsetOf()

 關於 Set.isSubsetOf()

前言

  在之前的 關於 Set.isDisjointFrom() 說到 Set 提供檢查內容是否完全不一樣,另外 Set 還提供內容是否完全包含的檢查,也就是 Set.isSubsetOf() ,在此把學習的過程做個紀錄。


內容

  範例如下

let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
let setC = new Set(['a','b','c','A','B','C']);
console.log( setA.isSubsetOf( setB ) );//flase
console.log( setA.isSubsetOf( setC ) );//true


  Set.isSubsetOf() 輸入一個 Set ,這樣就可以檢查內容是否完全包含,不過要注意的是檢查的是引數的 Set 是否完全包含喚起的 Set 。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

關於 Set.difference()

關於 Set.intersection()

關於 Set.symmetricDifference()

關於 Set.isDisjointFrom()

2026年3月16日 星期一

關於 Set.isDisjointFrom()

 關於 Set.isDisjointFrom()

前言

  Set 提供檢查兩個 Set 是否內容完全不一樣,也就是 Set.isDisjointFrom() ,在此把學習的過程做個紀錄。


內容

  範例如下

let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
let setC = new Set(['z','y','x','w']);
console.log( setA.isDisjointFrom( setB ) );//flase
console.log( setA.isDisjointFrom( setC ) );//true


Set.isDisjointFrom()  輸入一個 Set ,用來檢查與目前的 Set 的內容是否完全不同,只要有一個相同就會回傳 'false' ,只有完全不同時回傳 'true' 。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

關於 Set.difference()

關於 Set.intersection()

關於 Set.symmetricDifference()

2026年3月9日 星期一

關於 Set.symmetricDifference()

 關於 Set.symmetricDifference()

前言

  在先前的 關於 Set.difference() 介紹 Set.difference() , Set 還提供相關的函示來圈選 Set 的內容,這次介紹 Set.symmetricDifference() ,在此把學習的過程做個紀錄。


內容

  範例如下

function setValuesToString(set){
  let resStr = '[';
  let itor = set.values();
  for (const val of itor){
   resStr += val + ',';
  }
  //
  if(resStr.length != 1)
    resStr = resStr.substring( 0 , resStr.length - 1 );
  //
  resStr += ']';
  return resStr
}
//
let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
console.log( setValuesToString( setA.symmetricDifference( setB ) ) );//[a,A,d,e]


Set.symmetricDifference() 的功能是除了兩個 Set 都有的部分其餘都留下,剛好跟之前的 關於 Set.intersection() 的結果相反,所以結果是 'a' 、 'A' 、 'd' 與 'e' 。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

關於 Set.difference()

關於 Set.intersection()

2026年3月2日 星期一

關於 Set.intersection()

 關於 Set.intersection()

前言

  在先前的 關於 Set.difference() 介紹 Set.difference() , Set 還提供相關的函示來圈選 Set 的內容,這次介紹 Set.intersection() ,在此把學習的過程做個紀錄。


內容

  範例如下

function setValuesToString(set){
  let resStr = '[';
  let itor = set.values();
  for (const val of itor){
   resStr += val + ',';
  }
  //
  if(resStr.length != 1)
    resStr = resStr.substring( 0 , resStr.length - 1 );
  //
  resStr += ']';
  return resStr
}
//
let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
console.log( setValuesToString( setA.intersection( setB ) ) );//[b,c]


Set.intersection() 的功能是將兩個 Set 的內容都有的部分留下來,所以結果是 'b' 與 'c' 。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

關於 Set.difference()

2026年2月23日 星期一

關於 Set.difference()

 關於 Set.difference()

前言

  在先前的 關於 Set.union() 介紹 Set.union() , Set 還提供相關的函示來圈選 Set 的內容,這次介紹 Set.difference() ,在此把學習的過程做個紀錄。


內容

  範例如下

function setValuesToString(set){
  let resStr = '[';
  let itor = set.values();
  for (const val of itor){
   resStr += val + ',';
  }
  //
  if(resStr.length != 1)
    resStr = resStr.substring( 0 , resStr.length - 1 );
  //
  resStr += ']';
  return resStr
}
//
let setA = new Set(['a','b','c','A']);
let setB = new Set(['b','c','d','e']);
console.log( setValuesToString( setA.difference( setB ) ) );//[a,A]


Set.difference() 的功能是在SetA 裡把 SetB 有的內容全部去掉 ,所以原本的 'b' 與 'c' 都消失了。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

關於 Set.union()

2026年2月16日 星期一

關於 Set.union()

 關於 Set.union()

前言

  Set.union() 可以提供將兩個 Set 的內容混合在一起,在此把學習的過程做個紀錄。


內容

  範例如下

function setValuesToString(set){
  let resStr = '[';
  let itor = set.values();
  for (const val of itor){
   resStr += val + ',';
  }
  //
  if(resStr.length != 1)
    resStr = resStr.substring( 0 , resStr.length - 1 );
  //
  resStr += ']';
  return resStr
}
//
let setA = new Set(['a','b','c']);
let setB = new Set(['b','c','d','e']);
console.log( setValuesToString( setA.union( setB ) ) );//[a,b,c,d,e]


開頭的 setValuesToString() 是用來將 Set 的內容列印,可以看 關於列印 Set 的內容 。 Set.union() 的使用很簡單,引數是要混合的 Set ,最後透過回傳取得結果的 Set ,並不會改變原本喚起 Set 的內容。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

關於列印 Set 的內容

2026年2月9日 星期一

關於列印 Set 的內容

 關於列印 Set 的內容

前言

  最近需要列印 Set 的內容,結果發現 Set.toString() 並不會如預期的列印內容, Set 本身也沒提供直接列印的方法,那只能自己來了,在此做個紀錄。


內容

  結果如下

let set = new Set(['a','b','c']);

function setValuesToString(set){
  let resStr = '[';
  let itor = set.values();
  for (const val of itor){
   resStr += val + ',';
  }
  //
  if(resStr.length != 1)
    resStr = resStr.substring( 0 , resStr.length - 1 );
  //
  resStr += ']';
  return resStr
}
//
console.log( setValuesToString( set ) );//[a,b,c]
console.log( setValuesToString( new Set() ) );//[]


透過 setValuesToString() 輸入欲取得內容的 Set ,就可以會回傳內容的字串。過程是透過 Set.vlues() 來瀏覽每個內容後加 ',',中間的 subString() 是要覆蓋掉最後一個 ','。


參考資料

[ developer.mozilla.org ] Set


相關文章與資料

關於 JavaScript 的 Set

2026年2月2日 星期一

初探 String.endsWith()

 初探 String.endsWith()

前言

  在之前的 初探 String.startsWith() 介紹 String.startsWith() ,該函式是檢查字首的文字,那有檢查字尾的文字嗎?有的,那就是 String.endsWith() ,在此把學習的過程做個紀錄。


內容

  範例如下

let str = 'Hello world';
console.log( str.endsWith( 'world' ) );//true
console.log( str.endsWith( 'world' , 10 ) );//false
console.log( str.endsWith( 'world' , 100 ) );//true


String.endsWith() 用起來和 String.startsWith() ,參數直接輸入要檢查的文字即可,一樣有位移參數,意思是從該位址往前檢查文字,可以把不輸入位移參數時,這個參數就是 string.length !比較特別的是這個參數可以大於 string.length ,而且功能正常,可以範例的最後一例。


參考資料

[ developer.mozilla.org ] String.prototype.endsWith()


相關文章與資料

初探 String.startsWith()

2026年1月26日 星期一

初探 String.startsWith()

 初探 String.startsWith()

前言

  最近需要檢查字串開頭是否為特定的字串,結果發現官方有提供,也就是 String.startsWith() ,在此把學習的過程做個紀錄。


內容

  範例如下

let str = 'Hello World';
console.log( str.startsWith( 'Hello' ) );//true
console.log( str.startsWith( 'World' , 6 ) );//true


使用起來相當簡單,直接輸入要檢查的字串即可,另外還支援從指定位址檢查,如範例第二例所示。函式的名稱命名有點特別,是 startsWith ,而非 startWith ,注意 start 的後面要加 's' 。


參考資料

[ developer.mozilla.org ] String.prototype.startsWith()

2026年1月19日 星期一

初探 String.toWellFormed()

 初探 String.toWellFormed()

前言

  在先前的 初探 String.isWellFormed() 提到字串可以有不符合 UTF16 格式的字元,JavaScript 有提供 String.toWellFormed() 來消除不符合格式的字元,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( 'Hello world \uD800');//Hello world �
//Followed will be error!
//console.log( encodeURI( 'Hello world \uD800') );
//
console.log( encodeURI( 'Hello world \uD800'.toWellFormed() ) );//Hello%20world%20%EF%BF%BD


如果字串裡含有非 UTF16 格式的字元可以正常顯示嗎?答案是可以的,不會報錯,該字元會用特別符號顯示,如範例第一例。既然可以正常顯示又有必要去除嗎?有些函式因為功能的關係,無法接受含有非 UTF16 格式的字元,如 [ developer.mozilla.org ] encodeURI() ,如果把含有非 UTF16 格式的字元輸入會直接報錯,這時就可以透過 String.toWellFormed() 來修正這個問題。


參考資料

[ developer.mozilla.org ] String.prototype.toWellFormed()

[ developer.mozilla.org ] encodeURI()


相關文章與資料

初探 String.isWellFormed()

2026年1月12日 星期一

初探 String.isWellFormed()

 初探 String.isWellFormed()

前言

  最近在 [ developer.mozilla.org ] String.prototype.isWellFormed() 看到 String.isWellFormed() ,這個函式的名稱直翻很難想到是在做什麼的,所以就點開看看,在此把學習的過程做個紀錄。


內容

  String.isWellFormed() 的功能是用來檢測字串是否是合法的 UTF-16 字串,UTF-16 字串是 JavaScript 的字串編碼格式,如果字串裡被插入不合 UTF-16 格式的字元,可以用 String.isWellFormed() 來確認,範例如下

console.log( 'Hello world'.isWellFormed() );//true
console.log( 'Hello world \uD800'.isWellFormed() );//false


第一例使用正常的字串,所以結果是 true ,第二例在結尾塞一個 \uD800 ,這是在 UTF-16 裡不會出現的字元,所以結果會傳回 false 。


參考資料

[ developer.mozilla.org ] String.prototype.isWellFormed()

2026年1月5日 星期一

關於 Uint8Array.setFromHex()

 關於 Uint8Array.setFromHex()

前言

  在閱覽 Uint8Array 的說明發現有 Uint8Array.setFromHex() ,抽空了解它的作用是什麼,在此把學習的過程做個紀錄。


內容

  範例如下

let str = '0123456789abcdef';
let arHex = Uint8Array.fromHex( str );
arHex.setFromHex( 'ff12' );
console.log( arHex.toHex() );//ff12456789abcdef
//
let arHex1 = Uint8Array.fromHex( 'ff' );
arHex1.setFromHex( '00ff' );
console.log( arHex1.toHex() );//00


Uint8Array.setFromHex() 是提供用字串的方式賦值,就像建構式用字串的方式來賦值,範例透過設置 'ff12' 來賦值,結果可以看到改變是從開頭賦值的,遺憾的是該函式不提供位移,只能從開頭賦值。如果超出賦值範圍會如何呢?因為 Uint8Array 是在建構的時候就確定了大小,如果用 Uint8Array.setFromHex() 超出賦值範圍,可以在範例的賦值 '00ff' 看到,可以成功賦值,不會報錯。


參考資料

[ developer.mozilla.org ] Uint8Array.prototype.setFromHex()


相關文章與資料

初探 Uint8Array.fromHex() 與 Uint8Array.toHex()

再探 Uint8Array.fromHex()