[JavaScript]シャローコピーとディープコピーを理解する

19410 ワード

はじめに

Safari15.4が出たことで全てのモダンブラウザでstructuredClone()を使いディープコピーができるようになりました。
社内でも話題に上がりましたが、そもそもディープコピーってなんだ・・・?となったので簡単に調べてまとめます。
またシャローコピーについても取り上げます。

JavaScriptのデータ型

シャローコピー・ディープコピーの話の前にまずJavaScriptのデータについての話を少しします。
JavaScriptはプリミティブ型とオブジェクト型の2つに分けられます。

プリミティブ型

真偽値や数値など基本的な値の型のことです。
この型は一度作成すると値自体の変更をできない、イミュータブルの特性があります。
詳細はこちら↓