19 グローバルオブジェクト

グローバルオブジェクト:

19.1 グローバルオブジェクトの値プロパティ

19.1.1 globalThis

Realm Record realm におけるグローバルオブジェクト"globalThis" プロパティの初期値は realm.[[GlobalEnv]].[[GlobalThisValue]] である。

このプロパティは属性 { [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true } を持つ。

19.1.2 Infinity

Infinity の値は +∞𝔽 である (6.1.6.1 参照)。このプロパティは属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } を持つ。

19.1.3 NaN

NaN の値は NaN である (6.1.6.1 参照)。このプロパティは属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } を持つ。

19.1.4 undefined

undefined の値は undefined である (6.1.1 参照)。このプロパティは属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false } を持つ。

19.2 グローバルオブジェクトの関数プロパティ

19.2.1 eval ( x )

この関数は %eval% 組み込みオブジェクトである。

呼び出されたとき、次の手順を実行する:

  1. PerformEval(x, false, false) を返す。

19.2.1.1 PerformEval ( x, strictCaller, direct )

The abstract operation PerformEval takes arguments x (ECMAScript 言語値), strictCaller (Boolean), and direct (Boolean) and returns ECMAScript 言語値を含む通常完了または throw completion. It performs the following steps when called:

  1. Assert: directfalse なら strictCallerfalse
  2. もし x が String でなければ x を返す。
  3. evalRealm を現在の Realm Record とする。
  4. 注: 直接 eval の場合、evalRealmeval 呼出元と eval 関数自身の双方のレルムである。
  5. HostEnsureCanCompileStrings(evalRealm, « », x, direct) を実行。
  6. inFunctionfalse とする。
  7. inMethodfalse とする。
  8. inDerivedConstructorfalse とする。
  9. inClassFieldInitializerfalse とする。
  10. もし directtrue なら
    1. thisEnvRecGetThisEnvironment() とする。
    2. もし thisEnvRecFunction Environment Record なら
      1. FthisEnvRec.[[FunctionObject]] とする。
      2. inFunctiontrue に設定。
      3. inMethodthisEnvRec.HasSuperBinding() に設定。
      4. もし F.[[ConstructorKind]]derived なら inDerivedConstructortrue に設定。
      5. classFieldInitializerNameF.[[ClassFieldInitializerName]] とする。
      6. もし classFieldInitializerNameempty でなければ inClassFieldInitializertrue に設定。
  11. 以下のサブステップを実装定義の順序(構文解析とエラー検出をインタリーブしてもよい)で実行:
    1. script を ParseText(x, Script) とする。
    2. もし script がエラーのリストなら SyntaxError 例外を投げる。
    3. もし script Contains ScriptBodyfalse なら undefined を返す。
    4. bodyscriptScriptBody とする。
    5. もし inFunctionfalse かつ bodyNewTarget を含むなら SyntaxError を投げる。
    6. もし inMethodfalse かつ bodySuperProperty を含むなら SyntaxError を投げる。
    7. もし inDerivedConstructorfalse かつ bodySuperCall を含むなら SyntaxError を投げる。
    8. もし inClassFieldInitializertrue かつ body の ContainsArguments が true なら SyntaxError を投げる。
  12. もし strictCallertrue なら strictEvaltrue とする。
  13. それ以外は strictEval を ScriptIsStrict of script とする。
  14. runningContext を実行中実行コンテキストとする。
  15. 注: directtrue の場合 runningContext は直接 eval を実行した実行コンテキストである。directfalse の場合 runningContexteval 呼出の実行コンテキストである。
  16. もし directtrue なら
    1. lexEnvNewDeclarativeEnvironment(runningContext の LexicalEnvironment) とする。
    2. varEnvrunningContext の VariableEnvironment とする。
    3. privateEnvrunningContext の PrivateEnvironment とする。
  17. それ以外
    1. lexEnvNewDeclarativeEnvironment(evalRealm.[[GlobalEnv]]) とする。
    2. varEnvevalRealm.[[GlobalEnv]] とする。
    3. privateEnvnull とする。
  18. もし strictEvaltrue なら varEnvlexEnv に設定。
  19. もし runningContext がまだサスペンドされていなければ runningContext をサスペンド。
  20. evalContext を新 ECMAScript コード実行コンテキストとする。
  21. evalContext.Function を null に設定。
  22. evalContext.RealmevalRealm に設定。
  23. evalContext.ScriptOrModule を runningContext.ScriptOrModule に設定。
  24. evalContext.VariableEnvironment を varEnv に設定。
  25. evalContext.LexicalEnvironment を lexEnv に設定。
  26. evalContext.PrivateEnvironment を privateEnv に設定。
  27. evalContext を実行コンテキストスタックにプッシュ;evalContext が実行中実行コンテキストとなる。
  28. resultCompletion(EvalDeclarationInstantiation(body, varEnv, lexEnv, privateEnv, strictEval)) とする。
  29. もし result が通常完了なら
    1. resultCompletion(Evaluation of body) に設定。
  30. もし result が通常完了かつ result.[[Value]]empty なら
    1. resultNormalCompletion(undefined) に設定。
  31. evalContext をサスペンドし実行コンテキストスタックから除去。
  32. スタック最上位のコンテキストを再開。
  33. result を返す。
Note

eval コードは、呼び出し側コンテキストまたは eval コードのどちらか一方でも厳格モードコードである場合、呼び出し側の変数環境に変数や関数束縛をインスタンス化できない。代わりに、それら束縛は eval コードからのみアクセス可能な新しい VariableEnvironment にインスタンス化される。letconstclass 宣言によって導入される束縛は常に新しい LexicalEnvironment にインスタンス化される。

19.2.1.2 HostEnsureCanCompileStrings ( calleeRealm, parameterStrings, bodyString, direct )

The host-defined abstract operation HostEnsureCanCompileStrings takes arguments calleeRealm (Realm Record), parameterStrings (文字列リスト), bodyString (文字列), and direct (Boolean) and returns unused を含む通常完了または throw completion. 開発者が文字列を ECMAScript コードとして解釈・評価できる特定の ECMAScript 関数をホスト環境がブロックすることを可能にする。

parameterStrings は(関数コンストラクタの一つを使用する際)連結されてパラメータリストを組み立てる文字列群を表す。bodyString は関数本体または eval 呼び出しに渡される文字列を表す。 direct は評価が直接 eval かどうかを示す。

HostEnsureCanCompileStrings のデフォルト実装は NormalCompletion(unused) を返す。

19.2.1.3 EvalDeclarationInstantiation ( body, varEnv, lexEnv, privateEnv, strict )

The abstract operation EvalDeclarationInstantiation takes arguments body (ScriptBody Parse Node), varEnv (Environment Record), lexEnv (Declarative Environment Record), privateEnv (PrivateEnvironment Record または null), and strict (Boolean) and returns unused を含む通常完了または throw completion. It performs the following steps when called:

  1. varNamesbody の VarDeclaredNames とする。
  2. varDeclarationsbody の VarScopedDeclarations とする。
  3. もし strictfalse なら
    1. もし varEnv が Global Environment Record なら
      1. namevarNames について
        1. もし HasLexicalDeclaration(varEnv, name) が true なら SyntaxError 例外を投げる。
        2. 注: eval はグローバル lexical 宣言にシャドーされるグローバル var 宣言を作らない。
    2. thisEnvlexEnv とする。
    3. Assert: 以下のループは終了する。
    4. thisEnvvarEnv が同一 Environment Record でない間繰り返す
      1. もし thisEnvObject Environment Record でなければ
        1. 注: with 文の環境は lexical 宣言を含まないため var/let 衝突検査不要。
        2. namevarNames について
          1. もし ! thisEnv.HasBinding(name) が true なら
            1. Normative Optional
              ホストが Web ブラウザまたは Catch ブロック内の VariableStatements をサポートする場合、
              1. もし thisEnvCatch 節の Environment Record でなければ SyntaxError 例外を投げる。
            2. それ以外
              1. SyntaxError 例外を投げる。
          2. 注: 直接 eval は同名 lexical 宣言を越えて var を巻き上げない。
      2. thisEnvthisEnv.[[OuterEnv]] に設定。
  4. privateIdentifiers を空リストとする。
  5. pointerprivateEnv とする。
  6. pointernull でない間繰り返す
    1. Private Name bindingpointer.[[Names]] について
      1. もし privateIdentifiersbinding.[[Description]] を含まなければ追加。
    2. pointerpointer.[[OuterPrivateEnvironment]] に設定。
  7. AllPrivateIdentifiersValid of body (引数 privateIdentifiers) が false なら SyntaxError 例外。
  8. functionsToInitialize を空リストとする。
  9. declaredFunctionNames を空リストとする。
  10. varDeclarations の各 d を逆順で
    1. もし dVariableDeclaration, ForBinding, BindingIdentifier いずれでもなければ
      1. Assert: dFunctionDeclaration, GeneratorDeclaration, AsyncFunctionDeclaration, AsyncGeneratorDeclaration のいずれか。
      2. 注: 同名関数宣言が複数ある場合、最後が使用される。
      3. fnd の BoundNames の唯一要素とする。
      4. もし declaredFunctionNamesfn を含まなければ
        1. もし varEnv が Global Environment Record なら
          1. fnDefinable を ? CanDeclareGlobalFunction(varEnv, fn) とする。
          2. もし fnDefinablefalse なら TypeError
        2. fndeclaredFunctionNames に追加。
        3. dfunctionsToInitialize の先頭に挿入。
  11. declaredVarNames を空リストとする。
  12. varDeclarations の各 d について
    1. もし dVariableDeclaration, ForBinding, BindingIdentifier のいずれかなら
      1. 各文字列 vn ∈ BoundNames(d) について
        1. もし declaredFunctionNamesvn を含まなければ
          1. もし varEnv が Global Environment Record なら
            1. vnDefinable を ? CanDeclareGlobalVar(varEnv, vn) とする。
            2. もし vnDefinablefalse なら TypeError
          2. もし declaredVarNamesvn を含まなければ追加。
  13. Normative Optional
    もし strictfalse かつホストが Web ブラウザまたは ブロックレベル Function 宣言 (Web レガシー互換意味論) をサポートするなら
    1. declaredFunctionOrVarNamesdeclaredFunctionNamesdeclaredVarNames の連結とする。
    2. body Contains xtrue となる任意の Block, CaseClause, DefaultClause xStatementList に直接含まれる各 FunctionDeclaration f について
      1. FfBindingIdentifier の StringValue とする。
      2. FunctionDeclaration fBindingIdentifierFVariableStatement に置換しても body に早期エラーが生じないなら
        1. bindingExistsfalse とする。
        2. thisEnvlexEnv とする。
        3. Assert: 以下のループは終了。
        4. thisEnvvarEnv の間繰り返す
          1. もし thisEnvObject Environment Record でなければ
            1. もし ! thisEnv.HasBinding(F) が true なら
              1. Normative Optional
                ホストが Web ブラウザまたは Catch ブロック内の VariableStatements をサポートするなら
                1. もし thisEnvCatch 節の Environment Record でなければ bindingExiststrue に設定。
              2. それ以外
                1. bindingExiststrue に設定。
          2. thisEnvthisEnv.[[OuterEnv]] に設定。
        5. もし bindingExistsfalse かつ varEnv が Global Environment Record なら
          1. もし HasLexicalDeclaration(varEnv, F) が false なら
            1. fnDefinable を ? CanDeclareGlobalVar(varEnv, F) とする。
          2. それ以外
            1. fnDefinablefalse とする。
        6. それ以外
          1. fnDefinabletrue とする。
        7. もし bindingExistsfalse かつ fnDefinabletrue なら
          1. もし declaredFunctionOrVarNamesF を含まなければ
            1. もし varEnv が Global Environment Record なら
              1. CreateGlobalVarBinding(varEnv, F, true) を実行。
            2. それ以外
              1. bindingExists を ! varEnv.HasBinding(F) とする。
              2. もし bindingExistsfalse なら
                1. varEnv.CreateMutableBinding(F, true)。
                2. varEnv.InitializeBinding(F, undefined)。
            3. FdeclaredFunctionOrVarNames に追加。
          2. FunctionDeclaration f を評価する際、15.2.6 で規定される FunctionDeclaration 評価アルゴリズムの代わりに次を行う:
            1. gEnv を実行中実行コンテキストの VariableEnvironment とする。
            2. bEnv を実行中実行コンテキストの LexicalEnvironment とする。
            3. fObj を ! bEnv.GetBindingValue(F, false) とする。
            4. gEnv.SetMutableBinding(F, fObj, false) を実行。
            5. unused を返す。
  14. 注: このアルゴリズムステップ以降は、varEnv が Global Environment Record かつグローバルオブジェクトが Proxy exotic でない限り異常終了しない。
  15. lexDeclarationsbody の LexicallyScopedDeclarations とする。
  16. dlexDeclarations について
    1. 注: 字句的宣言名はここでインスタンス化されるが初期化されない。
    2. dn ∈ BoundNames(d) について
      1. もし IsConstantDeclaration(d) が true なら
        1. lexEnv.CreateImmutableBinding(dn, true) を実行。
      2. それ以外
        1. lexEnv.CreateMutableBinding(dn, false) を実行。
  17. 各 Parse Node ffunctionsToInitialize について
    1. fn を BoundNames(f) の唯一要素とする。
    2. fo を InstantiateFunctionObject(f, lexEnv, privateEnv) とする。
    3. もし varEnv が Global Environment Record なら
      1. CreateGlobalFunctionBinding(varEnv, fn, fo, true) を実行。
    4. それ以外
      1. bindingExists を ! varEnv.HasBinding(fn) とする。
      2. もし bindingExistsfalse なら
        1. 注: 前段階の検証により以下は異常終了を返さない。
        2. varEnv.CreateMutableBinding(fn, true)。
        3. varEnv.InitializeBinding(fn, fo)。
      3. それ以外
        1. varEnv.SetMutableBinding(fn, fo, false)。
  18. 各文字列 vndeclaredVarNames について
    1. もし varEnv が Global Environment Record なら
      1. CreateGlobalVarBinding(varEnv, vn, true) を実行。
    2. それ以外
      1. bindingExists を ! varEnv.HasBinding(vn) とする。
      2. もし bindingExistsfalse なら
        1. 注: 前段階の検証により以下は異常終了しない。
        2. varEnv.CreateMutableBinding(vn, true)。
        3. varEnv.InitializeBinding(vn, undefined)。
  19. unused を返す。

19.2.2 isFinite ( number )

この関数は %isFinite% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. num を ? ToNumber(number) とする。
  2. num有限値なら true を返す。
  3. false を返す。

19.2.3 isNaN ( number )

この関数は %isNaN% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. num を ? ToNumber(number) とする。
  2. numNaN なら true を返す。
  3. false を返す。
Note

ECMAScriptコードで値 XNaN かを判定する確実な方法は X !== X という式です。この結果が true になるのは XNaN の場合のみです。

19.2.4 parseFloat ( string )

この関数は string 引数の内容を10進リテラルとして解釈することで Number値を生成します。

これは %parseFloat% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. inputString を ? ToString(string) とする。
  2. trimmedString を ! TrimString(inputString, start) とする。
  3. trimmed を StringToCodePoints(trimmedString) とする。
  4. trimmed のうち StrDecimalLiteral の構文を満たす最長のプレフィックスを trimmedPrefix とする(trimmed 自体となる場合もある)。そのようなプレフィックスがなければ NaN を返す。
  5. parsedNumber を ParseText(trimmedPrefix, StrDecimalLiteral) とする。
  6. 断言: parsedNumber は Parse Node である。
  7. parsedNumber の StringNumericValue を返す。
Note

この関数は先頭部分だけを Number値として解釈することがあります。10進記法と解釈できないコードユニットは無視され、無視したかどうかは示されません。

19.2.5 parseInt ( string, radix )

この関数は指定された radix の基数で string の内容を解釈し整数の Number値を生成します。string の先頭の空白は無視されます。radix が0(undefined等)の場合、 "0x" または "0X" で始まれば 16、それ以外は 10 になります。radix が 16 の場合、数字表現は "0x""0X" でも可です。

これは %parseInt% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. inputString を ? ToString(string) とする。
  2. S を ! TrimString(inputString, start) とする。
  3. sign を 1 とする。
  4. S が空でなく最初のコードユニットが 0x002D(ハイフン)なら sign を -1 にする。
  5. S が空でなく最初のコードユニットが 0x002B(プラス)または 0x002D(ハイフン)なら S を index 1 以降の部分にする。
  6. R(? ToInt32(radix)) とする。
  7. stripPrefixtrue とする。
  8. R ≠ 0 の場合、
    1. R < 2 または R > 36 なら NaN を返す。
    2. R ≠ 16 なら stripPrefixfalse とする。
  9. それ以外の場合、
    1. R を 10 にする。
  10. stripPrefixtrue の場合、
    1. S の長さが 2 以上かつ先頭2コードが "0x" または "0X" の場合、
      1. S を index 2 以降にする。
      2. R を 16 にする。
  11. S に基数 R の数字でないコードユニットがあればその最初のindexを end、なければ S の長さを end とする。
  12. ZS の 0 から end までの部分とする。
  13. Z が空なら NaN を返す。
  14. mathIntZ を基数 R 表記で表した整数値とする。値10~35には AZaz を使う(R=10 かつ Z が 21 桁以上なら21桁以降は0にしてよい。R が 2,4,8,10,16,32 以外なら実装依存の近似値でもよい)。
  15. mathInt = 0 の場合、
    1. sign = -1 なら -0𝔽 を返す。
    2. +0𝔽 を返す。
  16. 𝔽(sign × mathInt) を返す。
Note

この関数は先頭部分だけを整数値として解釈することがあります。整数記法と解釈できないコードユニットは無視され、無視したかどうかは示されません。

19.2.6 URI ハンドリング関数

Uniform Resource Identifier(URI)は、インターネット上のリソース(例:ウェブページやファイル)、それらにアクセスするためのプロトコル(例:HTTPやFTP)を識別する文字列です。ECMAScript自体はこの節で述べるURIのエンコード・デコード以外の機能は提供しません。encodeURIdecodeURI は完全なURI用で、予約文字は区切り等の特別な意味を持つと想定されエンコードされません。encodeURIComponent, decodeURIComponent はURIの個々の構成部品用で、予約文字もテキストとみなしエンコードされ、URI全体内で特別な意味にならないようにされます。

Note 1

予約文字集合はRFC 2396に基づき、新しいRFC 3986での変更は反映されていません。

Note 2

多くのECMAScript実装はウェブページ操作の追加関数・メソッドを持ちますが、これらは本標準の範囲外です。

19.2.6.1 decodeURI ( encodedURI )

この関数は、encodeURI 関数で導入されうるエスケープやUTF-8エンコードを、それが表すコードポイントのUTF-16と置き換えた新しいURIを返します。encodeURI で導入されないエスケープは置換されません。

これは %decodeURI% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. uriString を ? ToString(encodedURI) とする。
  2. preserveEscapeSet";/?:@&=+$,#" とする。
  3. Decode(uriString, preserveEscapeSet) を返す。

19.2.6.2 decodeURIComponent ( encodedURIComponent )

この関数は、encodeURIComponent で導入されうるエスケープやUTF-8エンコードを、それが表すコードポイントのUTF-16と置き換えた新しいURIを返します。

これは %decodeURIComponent% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. componentString を ? ToString(encodedURIComponent) とする。
  2. preserveEscapeSet を空文字列とする。
  3. Decode(componentString, preserveEscapeSet) を返す。

19.2.6.3 encodeURI ( uri )

この関数は、UTF-16エンコードされた (6.1.4) URIのうち特定コードポイントごとにUTF-8の1~4個エスケープに置き換えた新しいURIを計算します。

これは %encodeURI% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. uriString を ? ToString(uri) とする。
  2. extraUnescaped";/?:@&=+$,#" とする。
  3. Encode(uriString, extraUnescaped) を返す。

19.2.6.4 encodeURIComponent ( uriComponent )

この関数は、UTF-16エンコードされた (6.1.4) URIのうち特定コードポイントごとにUTF-8の1~4個エスケープに置き換えた新しいURIを計算します。

これは %encodeURIComponent% という組み込みオブジェクトです。

呼び出されたとき以下の手順を実行します:

  1. componentString を ? ToString(uriComponent) とする。
  2. extraUnescaped を空文字列とする。
  3. Encode(componentString, extraUnescaped) を返す。

19.2.6.5 Encode ( string, extraUnescaped )

The abstract operation Encode takes arguments string (文字列) and extraUnescaped (文字列) and returns 文字列または throw completion を含む通常完了. URIエンコード・エスケープを行い、string6.1.4 のUTF-16コードポイント列と解釈します。RFC 2396で未予約または extraUnescaped に現れる文字はエスケープされません。 It performs the following steps when called:

  1. lenstring の長さとする。
  2. R を空文字列とする。
  3. alwaysUnescaped をASCII英数字と "-.!~*'()" を連結した文字列とする。
  4. unescapedSetalwaysUnescapedextraUnescaped を連結した文字列とする。
  5. k を 0 とする。
  6. k < len の間、繰り返す:
    1. Cstring のindex k のコードユニットとする。
    2. unescapedSetC が含まれる場合、
      1. kk + 1 にする。
      2. RR + C とする。
    3. それ以外の場合、
      1. cp を CodePointAt(string, k) とする。
      2. cp.[[IsUnpairedSurrogate]]true なら URIError を投げる。
      3. kk + cp.[[CodeUnitCount]] にする。
      4. Octetscp.[[CodePoint]] をUTF-8変換したオクテット配列とする。
      5. Octets の各 octet について:
        1. hexoctet を大文字16進表記した文字列とする。
        2. RR"%"StringPad(hex, 2, "0", start) の連結とする。
  7. R を返す。
Note

パーセントエンコードで個々のオクテットを表現するので、1コードポイントが複数連続エスケープ(UTF-8各8ビットごとに1つ)になることがある。

19.2.6.6 Decode ( string, preserveEscapeSet )

The abstract operation Decode takes arguments string (文字列) and preserveEscapeSet (文字列) and returns 文字列または throw completion を含む通常完了. URIのアンエスケープとデコードを行い、preserveEscapeSet 内のBasic Latin文字のエスケープは保持します。 It performs the following steps when called:

  1. lenstring の長さとする。
  2. R を空文字列とする。
  3. k を 0 とする。
  4. k < len の間、繰り返す:
    1. Cstring のindex k のコードユニットとする。
    2. SC とする。
    3. C が 0x0025(%)なら
      1. k + 3 > len なら URIError を投げる。
      2. escapestringk から k + 3 までとする。
      3. BParseHexOctet(string, k + 1) とする。
      4. B整数でなければ URIError を投げる。
      5. kk + 2 にする。
      6. nB の先頭1ビット個数とする。
      7. n=0 の場合、
        1. asciiChar を数値 B のコードユニットとする。
        2. preserveEscapeSetasciiChar が含まれれば Sescape に、そうでなければ SasciiChar にする。
      8. それ以外の場合、
        1. n=1 または n>4 なら URIError を投げる。
        2. Octets を « B » とする。
        3. j を 1 とする。
        4. j < n の間:
          1. kk + 1 にする。
          2. k + 3 > len なら URIError を投げる。
          3. string のindex k が 0x0025 でないなら URIError を投げる。
          4. continuationByteParseHexOctet(string, k + 1) とする。
          5. continuationByte整数でなければ URIError を投げる。
          6. OctetscontinuationByte を追加する。
          7. kk + 2 にする。
          8. jj + 1 にする。
        5. 断言: Octets の長さは n である。
        6. Octets が有効なUTF-8符号化でなければ URIError を投げる。
        7. VOctets からUTF-8変換で得られるコードポイント(21bit値)とする。
        8. S を UTF16EncodeCodePoint(V) とする。
    4. RR + S とする。
    5. kk + 1 にする。
  5. R を返す。
Note

RFC 3629では不正なUTF-8オクテット列のデコードは禁止されています。例えば0xC0 0x80は0x0000にデコードしてはならず、Decodeアルゴリズムは不正列で URIError を投げるべきです。

19.2.6.7 ParseHexOctet ( string, position )

The abstract operation ParseHexOctet takes arguments string (文字列) and position (非負整数) and returns 非負整数または非空ListSyntaxError オブジェクト. stringposition の2文字分を16進として解析し符号なし8ビット整数に変換します。 It performs the following steps when called:

  1. lenstring の長さとする。
  2. 断言: position + 2 ≤ len
  3. hexDigitsstringposition から position + 2 の部分とする。
  4. parseResult を ParseText(hexDigits, HexDigits[~Sep]) とする。
  5. parseResult が Parse Node でなければ parseResult を返す。
  6. nparseResult の MV とする。
  7. 断言: n は 0~255 の範囲内。
  8. n を返す。

19.3 グローバルオブジェクトのコンストラクタプロパティ

19.3.1 AggregateError ( . . . )

20.5.7.1 を参照。

19.3.2 Array ( . . . )

23.1.1 を参照。

19.3.3 ArrayBuffer ( . . . )

25.1.4 を参照。

19.3.4 BigInt ( . . . )

21.2.1 を参照。

19.3.5 BigInt64Array ( . . . )

23.2.5 を参照。

19.3.6 BigUint64Array ( . . . )

23.2.5 を参照。

19.3.7 Boolean ( . . . )

20.3.1 を参照。

19.3.8 DataView ( . . . )

25.3.2 を参照。

19.3.9 Date ( . . . )

21.4.2 を参照。

19.3.10 Error ( . . . )

20.5.1 を参照。

19.3.11 EvalError ( . . . )

20.5.5.1 を参照。

19.3.12 FinalizationRegistry ( . . . )

26.2.1 を参照。

19.3.13 Float16Array ( . . . )

23.2.5 を参照。

19.3.14 Float32Array ( . . . )

23.2.5 を参照。

19.3.15 Float64Array ( . . . )

23.2.5 を参照。

19.3.16 Function ( . . . )

20.2.1 を参照。

19.3.17 Int8Array ( . . . )

23.2.5 を参照。

19.3.18 Int16Array ( . . . )

23.2.5 を参照。

19.3.19 Int32Array ( . . . )

23.2.5 を参照。

19.3.20 Iterator ( . . . )

27.1.3.1 を参照。

19.3.21 Map ( . . . )

24.1.1 を参照。

19.3.22 Number ( . . . )

21.1.1 を参照。

19.3.23 Object ( . . . )

20.1.1 を参照。

19.3.24 Promise ( . . . )

27.2.3 を参照。

19.3.25 Proxy ( . . . )

28.2.1 を参照。

19.3.26 RangeError ( . . . )

20.5.5.2 を参照。

19.3.27 ReferenceError ( . . . )

20.5.5.3 を参照。

19.3.28 RegExp ( . . . )

22.2.4 を参照。

19.3.29 Set ( . . . )

24.2.2 を参照。

19.3.30 SharedArrayBuffer ( . . . )

25.2.3 を参照。

19.3.31 String ( . . . )

22.1.1 を参照。

19.3.32 Symbol ( . . . )

20.4.1 を参照。

19.3.33 SyntaxError ( . . . )

20.5.5.4 を参照。

19.3.34 TypeError ( . . . )

20.5.5.5 を参照。

19.3.35 Uint8Array ( . . . )

23.2.5 を参照。

19.3.36 Uint8ClampedArray ( . . . )

23.2.5 を参照。

19.3.37 Uint16Array ( . . . )

23.2.5 を参照。

19.3.38 Uint32Array ( . . . )

23.2.5 を参照。

19.3.39 URIError ( . . . )

20.5.5.6 を参照。

19.3.40 WeakMap ( . . . )

24.3.1 を参照。

19.3.41 WeakRef ( . . . )

26.1.1 を参照。

19.3.42 WeakSet ( . . . )

24.4 を参照。

19.4 グローバルオブジェクトのその他のプロパティ

19.4.1 Atomics

25.4 を参照。

19.4.2 JSON

25.5 を参照。

19.4.3 Math

21.3 を参照。

19.4.4 Reflect

28.1 を参照。