目次
- window.isFinite()
- window.isNaN()
- window.parseFloat()
- window.parseInt()
- URIハンドリング関数
- window.decodeURI()
- window.decodeURIComponent()
- window.encodeURI()
- window.encodeURIComponent()
1. isFinite()
グローバル関数 isFinite() は渡された値が有限数かどうかを判定します。必要に応じて、引数はまず数値へと変換されます。
function div(x) {
if (isFinite(1000 / x)) {
return 'Number is NOT Infinity.';
}
return 'Number is Infinity!';
}
console.log(div(0));
// expected output: "Number is Infinity!""
console.log(div(1));
// expected output: "Number is NOT Infinity."
2. isNaN()
isNaN() 関数は引数が NaN (非数) かどうかを判定します。isNaN 関数の型強制は意外なものになる可能性があるため、他の Number.isNaN() を使用した方が良いかもしれません。
function milliseconds(x) {
if (isNaN(x)) {
return 'Not a Number!';
}
return x * 1000;
}
console.log(milliseconds('100F'));
// expected output: "Not a Number!"
console.log(milliseconds('0.0314E+2'));
// expected output: 3140
3. parseFloat()
4. parseInt()
parseInt() 関数は、文字列の引数を解析し、指定された基数 (数学的記数法の底) の整数値を返します。
function roughScale(x, base) {
const parsed = parseInt(x, base);
if (isNaN(parsed)) { return 0; }
return parsed * 100;
}
console.log(roughScale(' 0xF', 16));
// expected output: 1500
console.log(roughScale('321', 2));
// expected output: 0
5. URIハンドリング関数
5-1. decodeURI()、decodeURIComponent()
5-2. encodeURI()、encodeURIComponent()
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 |