1. Atomics
Atomics オブジェクトは、静的なメソッドとして不可分操作を提供します。これらは SharedArrayBuffer および ArrayBuffer オブジェクトで使用されます。
不可分操作は、 Atomics モジュール上に装備されています。他のグローバルオブジェクトと異なり、 Atomics はコンストラクターではありません。 new 演算子と一緒に使用したり、 Atomics オブジェクトを関数として呼び出したりすることはできません。 Atomics のすべてのプロパティとメソッドは静的です (例えば、Math オブジェクトの場合と同様です)。
2. JSON
JSON オブジェクトは、 JavaScript Object Notation (JSON) を解釈するメソッドや、値を JSON に変換するメソッドを持ちます。これは呼び出しや構築をすることができず、また 2 つのメソッドプロパティを除いて、これ自身に興味深い機能性はありません。
JavaScript と JSON の違い:JSON は、オブジェクト、配列、数値、文字列、論理値、そして null をシリアライズする構文です。これは JavaScript の構文に基づいていますが、区別されるものです。JavaScript ならば JSON であるというわけではありません。
3. Math
Math は、数学的な定数と関数を提供するプロパティとメソッドを持つ、組み込みのオブジェクトです。関数オブジェクトではありません。Math は Number 型で動作します。 BigInt 型では動作しません。
他のグローバルオブジェクトと異なり、Math はコンストラクタではありません。Math オブジェクトのすべてのプロパティとメソッドは、静的です。円周率を表す定数πは、Math.PI として参照でき、正弦関数は、 Math.sin(x) として呼び出すことができます (ここでの x は、メソッドの引数です)。定数は、 JavaScript における実数での完全な精度で定義されています。
4. Reflect
Reflect は、JavaScript 操作を受け付けるためのメソッドを提供する組み込みオブジェクトです。メソッドはプロキシーハンドラーのメソッドと同じです。Reflect は関数オブジェクトではありませんので、構築することはできません。
他の多くのグローバルオブジェクトとは異なり、Reflect はコンストラクターではありません。new 演算子で使用したり、 Reflect オブジェクトを関数として呼び出したりすることはできません。 Reflect のすべてのプロパティとメソッドは (Math オブジェクトと同様に) 静的です。Reflect オブジェクトはプロキシーハンドラーのメソッドと同じ名前をもつ、下記の関数を提供します。これらのメソッドの一部は Object の対応するメソッドとも同じですが、これらの間にはいくらか微妙な違いがあります。
7. KnotTextでのECMAScriptの分類
参考:MDN Web DocsでのECMAScriptの分類
7-1-3. グローバルオブジェクトのコンストラクタープロパティ
コンストラクターとは、「オブジェクトを作成する能力を持たせた」関数で、「new」演算子によってオブジェクトインスタンスを作成することができる。
プリミティブデータ型のラッパーオブジェクト | |
---|---|
真偽値 | window.Boolean() |
文字列 | window.String() |
数値 | window.Number() |
window.BigInt() | |
シンボル | window.Symbol() |
オブジェクトのためのオブジェクト |
---|
window.Object() |
関数のためのオブジェクト | |
---|---|
window.Function() | |
関数のより高度なオブジェクト | window.GeneratorFunction() |
window.Generator() | |
window.AsyncFunction() | |
window.Promise() |
配列のためのオブジェクト | ||
---|---|---|
window.Array() | ||
配列のより高度なオブジェクト | window.ArrayBuffer() | |
window.DataView() | ||
window.SharedArrayBuffer() | ||
型付き配列のためのオブジェクト | window.Int8Array() | window.Int16Array() |
window.Uint8Array() | window.Uint16Array() | |
window.Uint8ClampedArray() | ||
window.Int32Array() | window.BigInt64Array() | |
window.Uint32Array() | window.BigUint64Array() | |
window.Float32Array() | window.Float64Array() |
日付・時刻のためのオブジェクト |
---|
window.Date() |
正規表現のためのオブジェクト |
---|
window.RegExp() |
エラーのためのオブジェクト | |
---|---|
window.Error() | window.EvalError() |
AggregateError | |
InternalError | |
window.RangeError() | |
window.ReferenceError() | |
window.SyntaxError() | |
window.TypeError() | |
URIError |
Managing Memory |
---|
window.WeakRef() |
Reflection |
---|
window.Proxy() |
7-1-4. グローバルオブジェクトのその他のプロパティ
Atomics |
---|
window.Atomics() |
JSON |
---|
window.JSON() |
Math |
---|
window.Math() |
Reflect |
---|
window.Reflect() |
7-2. ECMAScriptの演算子「計算・論理・代入」
7-2-1. ECMAScriptの演算子「計算」
7-2-2. ECMAScriptの演算子「論理」
7-2-3. ECMAScriptの演算子「代入」
7-3. ECMAScriptのステートメント
block ステートメント | ブロックを作る | |
---|---|---|
if ステートメント(else) | 条件を作る | |
イテレーションステートメント | do-while ステートメント | 必ず1回は実行されるwhileステートメント |
while ステートメント | 条件を満たすまで繰り返す | |
for ステートメント | 指定した回数まで繰り返す | |
for-in ステートメント | オブジェクトのためのforステートメント | |
for-of ステートメント | 配列状のオブジェクト全般のためのforステートメント | |
for-await-of ステートメント | Promiseオブジェクトのためのfor-ofステートメント | |
continue ステートメント | 繰り返しの処理をスキップして次の繰り返しへ進む | |
break ステートメント | 繰り返し・ラベル・switchステートメントの処理を中断してステートメントから抜け出す | |
switch ステートメント(case, default) | 条件に一致するcaseを実行する | |
throw ステートメント | 関数の中で例外を発生させ、catchが存在すればcatchに移行する。 | |
try ステートメント(catch, finally) | catchのためのfinallyでtryする? |
7-4. オブジェクトのためのパーツ
instanceof | オブジェクトが自身のプロトタイプにコンストラクタのprototype プロパティを持っているか判別する |
---|---|
new | new 演算子を使用すると、開発者はユーザー定義のオブジェクト型やコンストラクタ関数を持つ組み込みオブジェクト型のインスタンスを作成することができる |
delete | オブジェクトからプロパティを削除する |
in | 指定されたプロパティが指定されたオブジェクトにある場合にtrueを返す |
super | オブジェクトの親の関数を呼び出すために使用できる |
プロパティアクセッサー | オブジェクトのプロパティにアクセスする2種類の方法(ドット表記法、ブラケット表記法) |
オブジェクトリテラル | Object initializerによって作成するオブジェクト |
7-5. 配列のためのパーツ
配列リテラル | [a, b] = [1, 2] 代入 = [] 配列をつくる 配列リテラル 「配列」オブジェクト 配列初期化 Array()でも可 |
---|
7-6. 関数のためのパーツ
function | キーワード いわゆるexpression 関数を作成する |
---|---|
return ステートメント | |
this | [関数] キーワード |
function* | [ジェネレータオブジェクトを返す、ジェネレータ関数を定義] |
yield(yield*) | ジェネレータ関数 キーワード |
async function | キーワード 非同期関数 |
await | Promiseオブジェクト 非同期関数内のみ |
class(extends) | いわゆるexpression ECMAScript 2015~のclass定義 |
7-7. その他のパーツ
use strictモード | |
---|---|
,(comma) 演算子 | それぞれの演算対象を(左から右に)評価し、最後のオペランドの値を返します。これにより、複数の式が評価される複合式を作成することができ、複合式の最終値はそのメンバー式の一番右端の値となります。これは、for ループに複数の引数を提供する場合によく使用されます。 |
typeof 演算子 | 対象の値のデータ型を返す |
void 演算子 | 必ずundefinedを返す |
?.(Optional chaining) 演算子 | 接続されたオブジェクトチェーンの深くに位置するプロパティの値を、チェーン内の各参照が正しいかどうかを明示的に確認せずに読み込むことを可能にします。 |
labeled ステートメント | ラベル付け? |
import | |
export |