[JavaScript]変数

4910 ワード

変数とは?


コンピュータが「1+2」演算を行うには、1と2を覚えておく必要があります.
1と2を記憶するには、1と2をメモリに格納する必要があります.
メモリは、1バイトサイズのメモリユニットのセットから構成されます.
コンピュータは、メモリセルに1および2を格納する.
その後、1および2が格納されたアドレスにアクセスして演算することができる.

1と2を取り出すために、メモリアドレスにアクセスするのはコンピュータにとって簡単です.
逆に、人にとって、一人一人のメモリアドレスを知るのは容易ではありません.
また、人がエラーを起こす可能性があるため、エラーのメモリアドレスにアクセスします.
システムを破壊する可能性があります.
これらの理由により、プログラミング言語は変数と呼ばれるメカニズムを提供する.
var num1 = 1;
var num2 = 2;
変数に値を割り当て,変数近似値を用いた.
また,これらの変数は識別者とも呼ばれる.

変数の作成


JavaScriptはインタラクティブな言語です.
プログラムを実行すると、すぐに1行1行のマシンに変換します.
これをプログラムの実行フェーズといい、「実行時」といいます.
しかし、実行時に入る前に、先行作業があります.
まず、コードで宣言(変数宣言、関数宣言など)を検索して実行します.
これは、本番前にメモリを事前に確保するためです.
そのため、以下の現象が発生します.
console.log(num1); // undefined
var num1;
add(); // hahahoho

function add(){
	console.log("hahahoho");
}
上のコードはエラーのないコードです.
このように、宣言が最上位に上がる現象をハウスティンと呼ぶ.
Javascriptから変数を生成する方法はvar,const,letの3種類ある.
varを使用する場合、ブート中に未定義に初期化することに注意してください.
したがって、上記のコードにはエラーはありません.
逆にlet、constを使用すると、初期化プロセスはありません.
したがって、メモリに変数が存在します.
「初期化前のCannot access変数名」というエラーが発生しました.

変数に値を割り当てる


Javascriptでは、変数の宣言と値の割り当てが異なる時点で行われます.
...
...
console.log(a); // undefined
var a = 1;
console.log(a); // 1
...
変数の宣言は実行時より前に発生し、値の割り当ては実行時に発生します.

変数への値の再割り当て

var a = 1;
a = 10;
console.log(a); // 10
JavaScriptには2つのデータ型があります.
元のタイプ(Primitive Type)とオブジェクトタイプ(Object Type)です.
両者の違いは、値を変更できるかどうかです.
1に示す数字はnumberという元のタイプです.
では、値を変更できない元のタイプはどのように値を変更しますか?

最初に、変数aには1という値が存在する.
次にaに10という値を割り当てると、

このように、新しいメモリアドレスに10を割り当て、識別子「a」を移動する.
これにより、JavaScriptでは、元のタイプの値が変更ではなく再割り当てされます.
これにより、0 x 000 AAB 5アドレスに識別子が存在せず、再アクセスできなくなる.
これらのメモリ領域は、周期的なJavaScriptを実行する非仮想マシンによって提供されます.
メモリ領域から解放します.
リファレンス
モダンJavaScript Deep Dive