JS変数の深い理解

1477 ワード

LHS検索とRHS検索は、深いコピーと浅いコピーを検索する.
<script>
    var a={name:'charlotte'};
    var b = a;
    b.name='Charlotte';
    console.log(a);//Charlotte
    console.log(b);//Charlotte
script>
変数のタイプ1.基本タイプ:スタックメモリに保存されている簡単なデータセグメントで、データサイズが決定され、メモリの空間サイズが割り当てられます.5つの基本的なデータタイプはUdefined、Null、Boolean、Number、Stringがあります.それらは直接値によって保存されていますので、直接にアクセスできます.2.参照の種類:ヒープメモリに保存されているオブジェクトは、変数が実際に保存されているポインタで、このポインタは別の場所を指します.空間の大きさはそれぞれ違っています.状況に応じて開けられます.参照タイプ(オブジェクト、配列、関数など)の値にアクセスする必要がある場合は、まずスタックからそのオブジェクトのアドレスポインタを取得して、メモリから必要なデータを取得します.JavaScriptではプリコンパイル後にコードを実行する場合、変数の検索はLHS(Left-Hand-Seide)ルックアップとRHS(Right-Hand-ide)ルックアップに分けられます.
var a={name:'charlotte'};//         a   LHS  
var b = a;//    b LHS  ,    a RHS  
Object、Arayのような複雑なオブジェクトに対しては、Deep CopyとShallow Copyとがあり、変数aとbに対しては、b=aは変数aのアドレスをbにコピーしただけで、Shallow Copy、a、bは同時に変数nameを指すので、印刷した値は同じです.引用の種類は主に移転先の違いです.