JavaScriptの変数の型の一覧
var myVar; // 定義なし
var myVar = "Hello"; // 文字列
var myVar = 42; // 数値
var myVar = true; // boolean
var myVar = null; // null
var myVar = {}; // オブジェクト
var myVar = []; // オブジェクト(配列)
var myVar = function() {}; // 関数
var myVar = Symbol(); // symbol
Symbolについて
一意の値を表す。
以下のソースコードのように値が同じでもifではfalseの判定がされる。
let string1 = Symbol('文字列です');
let string2 = Symbol('id');
console.log(string1 === string2); // false
varとletの違い①
var:
関数の中で宣言された場合、その関数の中でのみ有効。
ブロック(ifやforなど)の中で宣言されても、そのブロックの外でもアクセス可能。
let:
ブロック({})内で宣言された場合、そのブロック内でのみ有効。
if (true) {
var x = 1;
let y = 2;
}
console.log(x); // 1 (varはブロック外からもアクセス可能)
console.log(y); // ReferenceError (letはブロック外からアクセス不可)
varとletの違い②
var: 同じスコープ内で再宣言が可能。
let: 同じスコープ内で再宣言ができない。同じ変数名を再び使うとエラーが発生する。
var a = 1;
var a = 2; // 問題なく再宣言可能
let b = 1;
let b = 2; // SyntaxError: Identifier 'b' has already been declared
varとletの違い③
var:
変数宣言がスコープのトップに巻き上げされる。
初期化は元の位置で行われる。「
let:
宣言前にアクセスするとエラーが発生する。
console.log(c); // cは3→2024/05/27修正 undefinedが正しい。
var c = 3;
console.log(d); // ReferenceError
let d = 4;