JavaScript変数


  • コンピュータは演算と記憶を実行する部品に分かれている.
  • CPU計算、
  • メモリを使用するデータ
  • を格納する.
  • メモリは、データを格納可能なメモリセルの集合である
  • メモリセルサイズ1バイト(8ビット)、
  • コンピュータのメモリセルサイズ.
    すなわち、バイト単位でデータ
  • を格納または取得する.
    各ユニット
  • には、独自のメモリアドレス
  • がある.
  • メモリアドレスはメモリ領域の位置を表す.
    0から、メモリサイズの整数で示す
  • プログラミング言語は、記憶したい値をメモリに格納します.
  • は、格納された値を取得および再利用するための変数メカニズムを提供する.

    パラメータバー


    𕼧1つの値を格納するために保持されるメモリ領域自体
    あるいはそのメモリ空間を識別するために付けられた名前です.
    簡単に言えば、変数はプログラミング言語に値を格納し、参照するメカニズムです.
    これは象徴的な名前で、価格の位置を指します.
  • フラグ名の変数は、プログラミング言語のコンパイラまたはinterpreterによって値を格納するメモリ空間のアドレスに変換されて実行される.
    したがって,開発者はメモリアドレスに直接値を格納したり参照したりする必要がなく,変数によって値に安全にアクセスできる.
  • ❗変数名


    メモリ領域に格納値を識別するユニークな名前
  • .

    ❗変数値

  • 変数に格納されている値
    値を
  • 変数に格納ことを割当て(借用、保存)と呼び、
  • .
    検索
  • 変数に格納値を
  • と呼ぶ.

  • 変数名は識別子とも呼ばれます

  • 識別字とは、ある値を判別できる固有の名称である
  • 識別子は記憶値のメモリアドレスとマッピング関係を確立し、これらのマッピング情報もメモリに記憶する
  • .
  • 識別子は、値ではなくメモリアドレス
  • を記憶する.
  • 識別子はメモリアドレスの名前
  • とも呼ぶことができる.
  • 識別子メモリに存在する任意の値を識別する名前を識別子と呼ぶ
    例えば、変数、関数、クラス等の名称は、いずれも識別子
  • である.

  • 変数、関数、クラスなどの名前の識別子.
    命名規則を守らなければならない.

  • JavaScriptエンジン識別子の存在を通知する宣言
  • パラメータの宣言

  • 変数の生成
  • の値を格納するためにメモリ領域を保持します.
  • 変数名を保存済みメモリ領域のアドレスに関連付けて値を保存する準備をします.
  • 変数は宣言する必要があります
  • JavaScript var、let、constキーワード宣言
  • を使用
    var world; // 변수 선언
  • ビット変数宣言登録変数名と格納値のメモリ領域を確保
  • メモリ領域はJavaScriptエンジンによって提供される
    未定義の値がデフォルトで割り当てられて初期化されます
    -これはjavascriptのユニークな特徴です
  • javascriptエンジンは、次の2つのステップで変数宣言を実行します.
  • 宣言フェーズ:JavaScriptエンジン変数の存在を通知する変数名を登録します.
  • 初期化フェーズ:メモリ値のメモリ領域を取得し、未定義を暗黙的に割り当てて初期化します.
  • varキーワードを使用した変数宣言は、宣言フェーズと初期化フェーズで同時に行われます.
  • 初期化を行わない場合、保存されたメモリ領域は、以前の他のアプリケーションで使用された値を保持する可能性があります.
  • これらの値を「ゴミ値」
  • と呼ぶ.
  • javascriptはサイレント初期化であり、この危険の中で安全な
  • である.

    パラメータちょうせい

  • 変数宣言がコードのフロントエンドに昇格したように,動作のJavaScript固有の特徴を変数反発と呼ぶ.
  • console.log(world); // undefined
    
    var world; // 변수 선언
  • 上のコードの前に参照変数宣言のコードがあるので、参照エラーが発生する可能性がありますが、
  • 参照エラーは発生せず、未定義の値
  • を出力する.
  • JavaScriptエンジンソースコードを順次実行する前に
    まずソースコードの評価を経て、ソースコードを実行するために
  • を準備する.
  • ソースコードの評価中、javascriptエンジンはまずソースコードで変数宣言を含むすべての宣言(変数宣言、関数宣言など)を検索して実行します.
  • ソースコードの評価プロセスが終了するまで、変数宣言を含むすべての宣言がソースコードを行ごとに実行されます.
  • つまり、変数がソースコードのどの位置を宣言しても、JavaScriptエンジンは他のコードより先に
  • を実行します.

    に値を付ける

    var world; // 변수 선언
    world = 1000; // 값의 할당
    
    // 다음과 같이 한 줄로 단축 표현할 수도 있다
    var world = 1000;
  • javascriptエンジンは、変数宣言と値割り当てを一度に行い、変数宣言と値割り当てを2つの段階に分けてそれぞれ実行します.
    -変数宣言と割当て値の実行時間が異なることに注意してください.
  • 変数宣言は、まずソースコードが順次実行する実行時より前に実行され、
  • .
  • の値の割り当ては、ソースコードが順次実行する実行時に
  • を実行する.

    列挙値の再割り当て

  • 再割り当ては、割り当てられた値の変数に新しい値
  • を再割り当てすることを意味する.
  • 現在の変数に格納値を破棄し、新しい値
  • を保存する.
    var world = 1000; // 변수 선언과 값의 할당
    world = 1001; // 값의 재할당
  • 変数に格納値を再割り当てできずに変更できない場合は、変数
  • ではなく定数と呼ぶ.
  • 定数は固定不変の値
  • である.

  • 古い値が格納されているメモリ領域を消去し、新しい値をメモリ領域に再割り当てするのではなく、

  • 新しいメモリ領域を解放し、新しいメモリ領域を格納


  • 再割り当てに伴い、古い値の未定義と1000は不要になりました.

  • これらの不要な値は、ゴミ収集器によって自動的にメモリから解放されます.

  • ただし、メモリからいつ解除されるかは予測できません.
  • 参考-モダンJavaScript Deep Dive