😈

JSの互換性リスクがある配列メソッド

2023/10/23に公開

結論

2023年10月時点では、以下のメソッドの使用を控えるべき。

  • Array.prototype.at()
  • Array.prototype.findLast()
  • Array.prototype.findLastIndex()
  • Array.fromAsync()
  • Array.prototype.toReversed()
  • Array.prototype.toSorted()
  • Array.prototype.toSpliced()
  • Array.prototype.with()

内訳

.at()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 92 (Released 2021-07-20)
Edge 92 (Released 2021-07-22)
Firefox 90 (Released 2021-07-13)
Safari 15.4 (Released 2022-03-15)

.findLast()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 97 (Released 2022-01-04)
Edge 97 (Released 2022-01-06)
Firefox 104 (Released 2022-08-23)
Safari 15.4 (Released 2022-03-15)

.findLastIndex()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 97 (Released 2022-01-04)
Edge 97 (Released 2022-01-06)
Firefox 104 (Released 2022-08-23)
Safari 15.4 (Released 2022-03-15)

.fromAsync()

サポートされていないブラウザがあります。

ブラウザ サポート
Chrome No
Edge No
Firefox 115 (Released 2023-07-04)
Safari 16.4 (Released 2023-03-27)

.toReversed()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 110 (Released 2023-02-07)
Edge 110 (Released 2023-02-09)
Firefox 115 (Released 2023-07-04)
Safari 16 (Released 2022-09-12)

.toSorted()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 110 (Released 2023-02-07)
Edge 110 (Released 2023-02-09)
Firefox 115 (Released 2023-07-04)
Safari 16 (Released 2022-09-12)

.toSpliced()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 110 (Released 2023-02-07)
Edge 110 (Released 2023-02-09)
Firefox 115 (Released 2023-07-04)
Safari 16 (Released 2022-09-12)

.with()

どのブラウザでも注意が必要です。

ブラウザ サポート
Chrome 110 (Released 2023-02-07)
Edge 110 (Released 2023-02-09)
Firefox 115 (Released 2023-07-04)
Safari 16 (Released 2022-09-12)

考察

サポートが新しいメソッドには以下の特徴がありました。

  • 参照ではなく新しい配列を返すメソッドが多い。
  • インデックス番号を降順で検索するメソッドがある。

イミュータブルな実装を意識してるんですかねぇ。
個人的には.at()が使いたい...

Discussion