変数とメモリ容量



変数とメモリ容量


メモリ


コンピュータは、メモリにデータを格納し、CPUを使用して演算します.CPUの動作は、メモリから必要なデータを取得して演算し、結果をメモリに再記憶することです.メモリは、データを大量に格納できるメモリユニットで構成されています.各セルには一意のアドレス値があります.
JavaScriptでは、開発者がメモリを直接制御することはできません.アドレス値に直接アクセスすると、致命的なエラーが発生する可能性があります.また、メモリのアドレス値は、プログラムが実行されるたびに変更される可能性のある値なので、直接使用するのは良い方法ではありません.

へんすう


JavaScriptでは、変数を使用してメモリ領域にアクセスできます.宣言変数とは、変数がメモリ空間アドレスの象徴的な意味であるため、特定のメモリ空間を取得することです.(より正確には、識別子はメモリアドレスにマッピングされ、変数は識別子に含まれる.)
したがって,変数をメモリ空間のアドレスと呼ぶことで,プログラマが理解できるようにすることができる.データ値が割り当てられている場合、その値はメモリ領域のアドレスに格納されます.これは、データのタイプが元のタイプかオブジェクトのタイプかによって異なります.
let primitiveType = 20;  // primitiveType 가 가리키는 메모리 공간에 값 자체를 저장
let objectType = {  // objectType 가 가리키는 메모리 공간에 객체의 주소 값을 저장
  name : "object"
};

let kim = {
  age : 20
};

let lee = {
  age : 20
};

console.log(kim === lee);  // false
console.log(kim.age === lee.age);  // true
primitiveType変数には、20という元のタイプの数値が指定されています.primitiveTypeが指すメモリ領域に格納される値自体は20である.objectType変数にオブジェクトを割り当てると、オブジェクトは保存されません.objectTypeが指すメモリ空間に格納されるのは、別のメモリ空間のアドレスである.このアドレスに到達してこそ、オブジェクトの情報にアクセスできます.
変数kimと変数leeのオブジェクトの外観は完全に一致しているが、これは2つのオブジェクトを比較するときにfalse値が現れる理由である.これは、2つのオブジェクトが異なるアドレスを指しているためです.2つのオブジェクトの外観が同じであっても、まったく異なるアドレスに格納されます.
でも金.年齢とleeageという名前の式は20の数値で表示されます.したがって、この2つの値を比較すると、trueという値が表示されます.

outro


個人的には何かを学ぶ過程と階段を登るのとは差が少ないと思います.ある瞬間、理解範囲が広くなった経験があるからです.모던 자바스크립트 Deep Diveを読んだとき、11章を読んだ後、4章の変数に関する内容をより具体的に理解し始めました.そこで、今日のブログを変数とメモリスペースについて整理します.
今日のすべてのブログは모던 자바스크립트 Deep Dive4章と11章に基づいています.個人的にはこの間Boot Campで学んだことを復習するのに適した本だと思います.ぜひ読んでみてください