JavaScript では数値として10進数、8進数、16進数、実数、浮動小数を使用できます。0x で始まる整数は 16 進数と解釈されます。ES2015(ES6) 以降では、0b(2進数) や 0o(8進数)もサポートされました。ES2020 以降では任意精度整数として BigInt がサポートされました。
12345 // 10進数の12345 1.23 // 実数の 1.23 1.23e4 // 1.23 × 10の4乗 1.23E4 // 1.23 × 10の4乗 0x1b // 16進数の1B(10進数の27) 0b1101 // ES2015(ES6)以降: 2進数の1101(10進数の13) 0o755 // ES2015(ES6)以降: 8進数の755(10進数の493) 012 // 8進数の12(10進数の10) ... ES2015以前の古い書き方 123n // 任意精度整数(BigInt)の123 ... ES2020以降
数値に関する詳細は 数値オブジェクト を参照してください。
文字の集まりを文字列と言います。JavaScript における文字列は、ダブルクォート(")またはシングルクォート(')で囲んで表現します。
str = "これが文字列だよ。"; str = 'これが文字列だよ。';
文字列に関する詳細は 文字列オブジェクト を参照してください。
true は「真」を表す値です。詳細は「真偽値(Boolean)」を参照してください。
false は「偽」を表す特別な値です。詳細は「真偽値(Boolean)」を参照してください。
値なしを示す特別な値です。
定義されていないことを示す特別な値です。
var a; // 宣言はされているが値が定義されていない console.log(a); // => undefined
値が定義されているか否かを調べるには typedef() を用います。
if (typedef(a) == "undefined") { console.log("値が定義されていません。"); }
厳密な比較演算子 === を用いても判定できますが、この場合、var a も宣言されていない場合は ReferenceError となります。
var a; if (a === undefined) { console.log("値が定義されていません。"); }
変数の値を undefined に戻すには undefined を代入します。この場合、undefined が変数として定義されて値が設定されていないことに注意してください。オブジェクトの属性値を undefined に戻すには delete 演算子を使用します。
var a = 123; a = undefined; var d = {x:123, y:456}; delete d.x;
数値でない(Not a Number)ことを表す特別な値です。
無限であることを表す特別な値です。
this は、自分自身を表す特別な変数です。イベントハンドラの中では、イベントが発生したオブジェクトを示します。クラスメソッドの中では、クラスのインスタンスを示します。
// イベントハンドラで参照する例 obj.addEventListener("click", function() { console.log(this); // => イベントが発生したオブジェクト }); // クラスメソッドで参照する例 class MyClass { func() { console.log(this); } // => MyClass {} } var obj = new MyClass(); obj.func();
ブラウザ上で動作する JavaScript では、グローバルオブジェクトとして window オブジェクトが使用されますが、Node.js 環境では代わりに global オブジェクトが使用されます。
foo = 123;
console.log(global.foo); // => 123
globalThis は、グローバルオブジェクトを示す特別な変数です。ES2020 で導入されました。ブラウザ上で実行する JavaScript では、window オブジェクトと同値になります。Node.js で実行した場合は global オブジェクトと同値になります。
console.log(globalThis); // => Window {window: ...}
ES2021 で追加された機能で、オブジェクトの弱参照を生成します。弱参照の値を取り出すには deref() を使用します。通常の参照(強参照)の場合、参照が継続している間はオブジェクトは破棄されませんが、弱参照の場合は他の参照が無くなるとガベージコレクションによって破棄されることがあります。破棄された場合 deref() は undefined を返却します。
var obj = { name: "Tanaka", age: 26 }; var a1 = obj; # 強参照 var a2 = new WeakRef(obj); # 弱参照 : console.log(a1); # { name: "Tanaka", age: 26 } console.log(a2.deref()); # { name: "Tanaka", age: 26 } または undefined