JS変数の型が分かれています
値タイプ(基本タイプ):ヌル未定義の数値文字列のブール
リファレンスタイプ:
配列オブジェクト
JSでは、各データ・メモリ空間を必要とします。メモリ空間は、の2種類に分けられているスタックメモリ(スタック)とヒープメモリ(ヒープ)。
スタックメモリは、一般的に、基本的なデータ型を格納しています
= 1があります。
次のようなデータ構造に似たスタックメモリの使用スタックデータ構造に格納されたデータ、LIFOの原則。
通常、参照データ型を格納するメモリをヒープ
VaRのB = {XI:20}
シャローコピー
シャローコピーは一つだけのコピーです
関数をshallowClone(ソース){
VAR対象= {};
(VAR Iソースで){ための
IF(source.hasOwnProperty(I)){
ターゲット[i]は=源[I]。
}
}
戻りターゲット;
}
JSON深いコピー
関数cloneJSON(ソース){
JSON.parse(JSON.stringify(ソース))を返します。
}
= +ディープコピーシャローコピーを再帰的に
短所:通常のオブジェクト、FUNCなどに対処していないため
関数クローン(ソース){
VAR対象= {};
(ソース内のvar I){用
IF(source.hasOwnProperty(I)){
IF(typeof演算源[I] === 'オブジェクト'){
[I] =クローン(ソース[I])を標的と; //はなお
}他{
標的[I] =源[I]。
}
}
}
ターゲットを返します。
}
関数 cloneJSON(ソース){ 戻りJSON (.parse JSON ).stringify(ソース)。}