Variable Types
12903 ワード
かへん
Global Variable
グローバル変数として、宣言からRuntimeが終了するまでメモリの使用を開始します.
Local Variable
地域変数としては、
{}
の内部に存在し、{}
以外では地域変数を読み取ることができない.Block scope
利用可能範囲を中価格
{}
で指定{}
で宣言された変数は外部では使用できません.Var
Var Hoisting
変数はどこで宣言されても、常に上部に引き寄せられます.
コードに変数が宣言されない前にデータを割り当てることができます.(メモリ管理X)
吊り下げのため、ブロック範囲が作動しません.すなわち、
{}
内で変数を宣言しても、グローバルに使用することができる.(メモリの無駄)Let
letを使用する場合は、変数にデータを割り当てるには変数を宣言する必要があります.
他の言語と同様に、宣言後にデータを変更することができます.(Mutable)
Constants
メモリに宣言して割り当てると、データは変更できません.(Immutable)
セキュリティにより、複数のスレッドが変数データの変更にアクセスし、コラボレーション時にコードエラーを防止します.
Variable Types
Primitive
Single item
ex) number, string, boolean, null, undefiedn, symbol
Object
Primitive typeを組み合わせてbox単位で管理します.
Function
関数は、データ型の1つとしても使用されます.(first-class function)
変数に割り当てることができ、パラメータとして渡すことができ、関数として返すことができます.
Number
c、javaなどの言語では、データのサイズに応じてメモリ割り当てのサイズを区別して変数(short、int、long、float、double...)を宣言する必要があります.
JavaScriptでは、データのサイズに応じてメモリが動的に割り当てられます.
Infinity | NegativeInfinity | NaN
const infinity = 1 / 0;
const negativeInfinity = -1 / 0;
const nAn = 'not a number' / 2;
console.log(infinity); // Infinity
console.log(negativeInfinity); // -Infinity
console.log(nAn); // NaN
String
番号と同様に、動的な割り当てです.
template literals
${}
を用いて変数内の値を出力することができる.const brendan = 'brendan';
const helloBob = `hi ${brendan}!`;
console.log(`value : ${helloBob}, type : ${typeof helloBob}`);
// value : hi brendan!, type : string
Boolean
False
0, null, undefined, NaN, ''
True
False要素以外のすべてのコンテンツ
Null | Undefined
Null
空価
Undefined
空っぽである
Symbol
指定された文字列が何であるかにかかわらず、一意の識別子が必要な場合に使用されます.
const symbol1 = Symbol('id');
const symbol2 = Symbol('id');
console.log(symbol1 === symbol2); // False
const symbol1 = Symbol.for('id');
const symbol2 = Symbol.for('id');
console.log(symbol1 === symbol2); // True
Object
const ellie = { name : 'ellie', age : 20 };
ellie boxは変更できませんが、ellieが指す名前と年齢は変更できます.
Dynamic typing : dynamically typed language
変数を宣言するときはタイプを設定せず、プログラムの実行時に割り当てられた値に基づいてタイプを決定します.
let text = 'hello';
console.log(text.charAt(0)); // h 출력
console.log(`value : ${text}, type : ${typeof text}`);
text = 1;
console.log(`value : ${text}, type : ${typeof text}`);
text = '7' + 5;
console.log(`value : ${text}, type : ${typeof text}`); // 75 -> 5를 string으로 변환 후 합침
text = '8' / '2';
console.log(`value : ${text}, type : ${typeof text}`); // 4 -> string 8, 2를 number로 변환 후 계산
console.log(text.charAt(0)); // error -> runtime 중 type이 number로 바뀌면서 error 출력
Reference
この問題について(Variable Types), 我々は、より多くの情報をここで見つけました https://velog.io/@singco/ES6-Variable-Typesテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol