数値・文字列・定数

[up] [prev] [next]

目次

数値

JavaScript では数値として10進数、8進数、16進数、実数、浮動小数を使用できます。0x で始まる整数は 16 進数と解釈されます。ES2015(ES6) 以降では、0b(2進数) や 0o(8進数)もサポートされました。ES2020 以降では任意精度整数として BigInt がサポートされました。

JavaScript
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 における文字列は、ダブルクォート(")またはシングルクォート(')で囲んで表現します。

JavaScript
str = "これが文字列だよ。";
str = 'これが文字列だよ。';

文字列に関する詳細は 文字列オブジェクト を参照してください。

定数

true

true は「真」を表す値です。詳細は「真偽値(Boolean)」を参照してください。

false

false は「偽」を表す特別な値です。詳細は「真偽値(Boolean)」を参照してください。

null

値なしを示す特別な値です。

undefined

定義されていないことを示す特別な値です。

JavaScript
var a;			// 宣言はされているが値が定義されていない
console.log(a);		// => undefined

値が定義されているか否かを調べるには typedef() を用います。

JavaScript
if (typedef(a) == "undefined") {
  console.log("値が定義されていません。");
}

厳密な比較演算子 === を用いても判定できますが、この場合、var a も宣言されていない場合は ReferenceError となります。

JavaScript
var a;
if (a === undefined) {
  console.log("値が定義されていません。");
}

変数の値を undefined に戻すには undefined を代入します。この場合、undefined が変数として定義されて値が設定されていないことに注意してください。オブジェクトの属性値を undefined に戻すには delete 演算子を使用します。

JavaScript
var a = 123;
a = undefined;

var d = {x:123, y:456};
delete d.x;
NaN

数値でない(Not a Number)ことを表す特別な値です。

Infinity

無限であることを表す特別な値です。

特殊変数

this

this は、自分自身を表す特別な変数です。イベントハンドラの中では、イベントが発生したオブジェクトを示します。クラスメソッドの中では、クラスのインスタンスを示します。

JavaScript
// イベントハンドラで参照する例
obj.addEventListener("click", function() {
  console.log(this);			// => イベントが発生したオブジェクト
});

// クラスメソッドで参照する例
class MyClass {
  func() { console.log(this); }		// => MyClass {}
}
var obj = new MyClass();
obj.func();
global

ブラウザ上で動作する JavaScript では、グローバルオブジェクトとして window オブジェクトが使用されますが、Node.js 環境では代わりに global オブジェクトが使用されます。

JavaScript
foo = 123;
console.log(global.foo);	// => 123
globalThis

globalThis は、グローバルオブジェクトを示す特別な変数です。ES2020 で導入されました。ブラウザ上で実行する JavaScript では、window オブジェクトと同値になります。Node.js で実行した場合は global オブジェクトと同値になります。

JavaScript
console.log(globalThis);	// => Window {window: ...}

弱参照

WeakRef()
weakref.deref()

ES2021 で追加された機能で、オブジェクトの弱参照を生成します。弱参照の値を取り出すには deref() を使用します。通常の参照(強参照)の場合、参照が継続している間はオブジェクトは破棄されませんが、弱参照の場合は他の参照が無くなるとガベージコレクションによって破棄されることがあります。破棄された場合 deref() は undefined を返却します。

JavaScript
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

[up] [prev] [next]
Copyright (C) 1996-2021 杜甫々
改訂版初版:2001年5月20日、最終更新:2021年12月29日
http://www.tohoho-web.com/js/value.htm