- Authors
- Name
var, let, const の比較
JavaScriptで変数を宣言する方法は3つあります。varキーワードはfunction scopeで、宣言すると関数内部全体で使用できます。一方、letとconstはblock scopeで、ブロック内でのみ使用できる変数になります。letとconstにも違いがあり、letの場合は変数を別の値に再代入できますが、constの場合は再代入ができません。immutable(不変)かどうかと考えても良いでしょう。
JavaScriptの型
JavaScriptで提供されるデータ型はいくつかありますが、大きく2つに分けることができます。1つ目はプリミティブ型(Primitive type)で、2つ目は参照型(Reference type)です。
- プリミティブ型:Boolean, String, Number, null, undefined, Symbol(ES6)
- 参照型:Object, Array, function, classes
プリミティブ型は値を保存するためにCall Stackを使用しますが、参照型はHeapメモリを使用します。
参照型の場合、データのサイズが固定されておらず、データの値がheapに保存され、変数にはHeapメモリのアドレス値が割り当てられます。
JavaScriptは動的(dynamic)型付けの言語であるため、runtimeに変更される可能性があります。そのため、変数定義時にデータ型を明示する必要がありません。
example
const a = "asdf"; //string
const b = 123; // number
let c = 'foo';
c = 123123; // dynamic type
c = true;
c = Symbol(); // symbol type
c = ["hi", "hello"];
console.log(typeof c);