0x0b
js
最終更新:
Bot(ページ名リンク)
-
view
ECMAscript 3版
オブジェクト
オブジェクト
- Global
- Object
- Function
- Array
- String
- Boolean
- Number
- Math
- Date
- RegExp
- Error(Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError)
プロパティ を保持するコンテナ
- 他のオブジェクト
- プリミティブ値
- メソッド
プリミティブ値を持つ組み込み 型
Undefined, Null, Boolean, Number, String
Undefined, Null, Boolean, Number, String
組み込み演算子セットの定義
単項演算(unary operations)
乗除演算子(multiplicative operators)
加減演算子(additive operators)
ビットシフト演算子(bitwise shift operators)
関係演算子(relational operators)
等価演算子(equality operators)
ビット演算子(binary bitwise operators)
論理演算子(binary logical operators)
代入演算子(assignment operators)
カンマ演算子(comma operator)
単項演算(unary operations)
乗除演算子(multiplicative operators)
加減演算子(additive operators)
ビットシフト演算子(bitwise shift operators)
関係演算子(relational operators)
等価演算子(equality operators)
ビット演算子(binary bitwise operators)
論理演算子(binary logical operators)
代入演算子(assignment operators)
カンマ演算子(comma operator)
オブジェクトを生成するコンストラクタ
コンストラクタではないオブジェクトもある
prototypeプロパティにより
プロトタイプベースの継承および共有プロパティの実装に使用
プロトタイプチェーン (prototype chain)
クラスベースのオブジェクト指向の言語
一般に、状態(state) がインスタンスによって運ばれ、メソッドはクラスによって運ばれ、継承は構造(strucutuer) と振る舞い(behaviour) にのみ存在
ECMAScriptでは、状態およびメソッドがオブジェクトによって運ばれ、構造、振る舞い、状態がすべて継承される
コンストラクタではないオブジェクトもある
prototypeプロパティにより
プロトタイプベースの継承および共有プロパティの実装に使用
プロトタイプチェーン (prototype chain)
クラスベースのオブジェクト指向の言語
一般に、状態(state) がインスタンスによって運ばれ、メソッドはクラスによって運ばれ、継承は構造(strucutuer) と振る舞い(behaviour) にのみ存在
ECMAScriptでは、状態およびメソッドがオブジェクトによって運ばれ、構造、振る舞い、状態がすべて継承される
new String("text")
オブジェクト生成にはnew式を使用
String("text")
プリミティブな文字列を生成
オブジェクト生成にはnew式を使用
String("text")
プリミティブな文字列を生成
定義 (Definitions)
[訳注: この仕様では "instance" という語が散見するが、 ECMAScript はプロトタイプベース言語であり、この語はクラスベース言語における "instance" のような技術的意味を持たない。現に仕様内にこの語に関する定義は公式非公式含めて見つからず、日常語としての「実例、実体、具体的なもの」としての意味合いで用いられているとも考えられる。]
[訳注: この仕様では "instance" という語が散見するが、 ECMAScript はプロトタイプベース言語であり、この語はクラスベース言語における "instance" のような技術的意味を持たない。現に仕様内にこの語に関する定義は公式非公式含めて見つからず、日常語としての「実例、実体、具体的なもの」としての意味合いで用いられているとも考えられる。]
型 (Type)
データ値の集合
データ値の集合
プリミティブ値 (Primitive Value)
Undefined, Null, Boolean, Number, String 型のうちの一つの構成要素
プリミティブ値は言語実装の最低レベルにおいて直接表されるデータ
Undefined, Null, Boolean, Number, String 型のうちの一つの構成要素
プリミティブ値は言語実装の最低レベルにおいて直接表されるデータ
オブジェクト (Object)
Object 型の構成要素
序列のないプロパティの集合体
それぞれのプロパティがプリミティブ値やオブジェクト、関数を含む
オブジェクトのプロパティに格納された関数はメソッドと呼ばれる
Object 型の構成要素
序列のないプロパティの集合体
それぞれのプロパティがプリミティブ値やオブジェクト、関数を含む
オブジェクトのプロパティに格納された関数はメソッドと呼ばれる
コンストラクタ (Constructor)
オブジェクトを生成し初期化する Function オブジェクトのこと
各コンストラクタは関連する prototype オブジェクトを持ち、継承と共有プロパティの実装に用いられる
オブジェクトを生成し初期化する Function オブジェクトのこと
各コンストラクタは関連する prototype オブジェクトを持ち、継承と共有プロパティの実装に用いられる
プロトタイプ (Prototype)
オブジェクトであり、ECMAScript 中では、構造(structure), 状態(state), 振る舞い(behaviour) の継承に用いられる。コンストラクタがオブジェクトを生成するとき、プロパティの参照を解決する目的で、そのオブジェクトは暗黙にコンストラクタに関連するプロトタイプを参照する。コンストラクタに関連するプロトタイプはプログラム式 constructor.prototype で参照され、オブジェクトのプロトタイプに追加されたプロパティは、継承を通して、そのプロトタイプを共有する全オブジェクトによって共有される
オブジェクトであり、ECMAScript 中では、構造(structure), 状態(state), 振る舞い(behaviour) の継承に用いられる。コンストラクタがオブジェクトを生成するとき、プロパティの参照を解決する目的で、そのオブジェクトは暗黙にコンストラクタに関連するプロトタイプを参照する。コンストラクタに関連するプロトタイプはプログラム式 constructor.prototype で参照され、オブジェクトのプロトタイプに追加されたプロパティは、継承を通して、そのプロトタイプを共有する全オブジェクトによって共有される
ネイティブオブジェクト (Native Object)
ECMAScript 実装によって提供される任意のオブジェクトで、ホスト環境に依存しない。標準 Native オブジェクトは本仕様中で定義される。Native オブジェクトの一部は Built-in(組み込み) である。他のものは ECMAScript プログラムの実行行程の間に構築されるだろう
ECMAScript 実装によって提供される任意のオブジェクトで、ホスト環境に依存しない。標準 Native オブジェクトは本仕様中で定義される。Native オブジェクトの一部は Built-in(組み込み) である。他のものは ECMAScript プログラムの実行行程の間に構築されるだろう
組み込みオブジェクト (Built-in Object)
ECMAScript 実装によって提供される任意のオブジェクトであり、ECMAScript プログラムの実行の開始時に存在するホスト環境に依存しない。標準 Built-in オブジェクトは本仕様中に定義され、ECMAScript 実装は他を定義してもよい。全 Built-in オブジェクトは Native オブジェクトである。
ECMAScript 実装によって提供される任意のオブジェクトであり、ECMAScript プログラムの実行の開始時に存在するホスト環境に依存しない。標準 Built-in オブジェクトは本仕様中に定義され、ECMAScript 実装は他を定義してもよい。全 Built-in オブジェクトは Native オブジェクトである。
ホストオブジェクト (Host Object)
Host オブジェクトは ECMAScript の実行環境を満たすためにホスト環境によって提供される任意のオブジェクトである。Native でない任意のオブジェクトは Host オブジェクトである。
Host オブジェクトは ECMAScript の実行環境を満たすためにホスト環境によって提供される任意のオブジェクトである。Native でない任意のオブジェクトは Host オブジェクトである。
undefined 値 (Undefined Value)
プリミティブ値
変数に値が代入されていないときに用いられる
プリミティブ値
変数に値が代入されていないときに用いられる
Undefined 型 (Undefined Type)
厳密には undefined と呼ばれるひとつの値を取る
厳密には undefined と呼ばれるひとつの値を取る
null 値 (Null Value)
プリミティブな値であり、ヌル、空(empty)、存在しない参照を表す
プリミティブな値であり、ヌル、空(empty)、存在しない参照を表す
Null 型 (Null Type)
厳密には null と呼ばれるひとつの値を取る
厳密には null と呼ばれるひとつの値を取る
真偽値 (Boolean Value)
Boolean 型の元 (member:集合を構成するもの)
一意的な二つの値、 true と false の一方である。
Boolean 型 (Boolean Type)
論理的実体を表し、厳密には二つの一意的な値で構成される。一方は true と呼ばれ、他方は false と呼ばれる。
4.3.15 Boolean オブジェクト (Boolean Object)
論理的実体を表し、厳密には二つの一意的な値で構成される。一方は true と呼ばれ、他方は false と呼ばれる。
4.3.15 Boolean オブジェクト (Boolean Object)
Boolean オブジェクトは Object 型の元で、組込み Boolean オブジェクトのインスタンスである。つまり、 Boolean オブジェクトは、 new 式内で引数にブーリアンを渡した Boolean コンストラクタを用いて作成される。結果のオブジェクトはブーリアンである暗黙の(無名の)プロパティを持つ。 Boolean オブジェクトはブーリアン値に強制される。
文字列値 (String Value)
String 型の元で、0 以上の 16 ビット符号なし整数値による有限の順序あるシーケンスである。
NOTE 各値は通常単一の UTF-16 テキストの 16 ビット単位をあらわすが、言語はそれらが 16 ビット符号なし整数であること以外の制限また要求を値上に設置しない。
String 型の元で、0 以上の 16 ビット符号なし整数値による有限の順序あるシーケンスである。
NOTE 各値は通常単一の UTF-16 テキストの 16 ビット単位をあらわすが、言語はそれらが 16 ビット符号なし整数であること以外の制限また要求を値上に設置しない。
String 型 (String Type)
String 型はすべての文字列値の集合である。
String 型はすべての文字列値の集合である。
String オブジェクト (String Object)
Object 型の元で、組込み String オブジェクトのインスタンスである。つまり、String オブジェクトは new 式内で引数として文字列を供給する String コンストラクタを用いて生成される。結果のオブジェクトは文字列である暗黙の(無名の)プロパティを持つ。 String コンストラクタの関数としての呼び出しにより、 String オブジェクトは文字列値に強制される。
Object 型の元で、組込み String オブジェクトのインスタンスである。つまり、String オブジェクトは new 式内で引数として文字列を供給する String コンストラクタを用いて生成される。結果のオブジェクトは文字列である暗黙の(無名の)プロパティを持つ。 String コンストラクタの関数としての呼び出しにより、 String オブジェクトは文字列値に強制される。
数値 (Number Value)
Number 型の元で、数を直接表現する。
Number 型 (Number Type)
数を表す値の集合である。 ECMAScript において、値の集合は、特殊な "Not-a-Number" (NaN) 値、正の無限大、負の無限大を含めた倍精度64ビット形式 IEEE 754 値である。
4.3.21 Number オブジェクト (Number Object)
数を表す値の集合である。 ECMAScript において、値の集合は、特殊な "Not-a-Number" (NaN) 値、正の無限大、負の無限大を含めた倍精度64ビット形式 IEEE 754 値である。
4.3.21 Number オブジェクト (Number Object)
Number オブジェクトは Object 型の元で、組込み Number オブジェクトのインスタンスである。つまり、 Number オブジェクトは new 式において Number コンストラクタに引数として数を渡して生成される。結果のオブジェクトは数字である暗黙の (無名の) プロパティを持つ。 Number オブジェクトは関数としての Number コンストラクタ呼び出し (セクション 15.7.1) によって数値に矯正できる。
Infinity
プリミティブ値
正の無限大をあらわす。この値は Number 型の元である。
プリミティブ値
正の無限大をあらわす。この値は Number 型の元である。
NaN
プリミティブ値
IEEE 標準 "Not-a-Number" 値のセットあらわす
この値は Number 型の元である
プリミティブ値
IEEE 標準 "Not-a-Number" 値のセットあらわす
この値は Number 型の元である
記述法
構文と字句の文法 (Syntactic and Lexical Grammars)
構文と字句の文法 (Syntactic and Lexical Grammars)
文脈自由文法 (Context-Free Grammars)
生成規則 (production)によって構成
各生成規則はその左辺に非終端記号 (nonterminal symbol) と呼ばれる抽象的記号を
右辺に 0 個以上の非終端記号と終端記号 (terminal symbol) の並びを持つ
各文法のために、終端記号は特定のアルファベットか引き出される
目標記号 (goal symbol) と呼ばれる、単一の識別される非終端記号で構成される文から始まり、与えられる文脈自由文法は言語を規定
終端記号の可能なシーケンスの (おそらく無限の) 集合で、それはシーケンス内で非終端記号を、非終端記号が左辺である生成規則の右辺で繰り返し置換することから生じる
生成規則 (production)によって構成
各生成規則はその左辺に非終端記号 (nonterminal symbol) と呼ばれる抽象的記号を
右辺に 0 個以上の非終端記号と終端記号 (terminal symbol) の並びを持つ
各文法のために、終端記号は特定のアルファベットか引き出される
目標記号 (goal symbol) と呼ばれる、単一の識別される非終端記号で構成される文から始まり、与えられる文脈自由文法は言語を規定
終端記号の可能なシーケンスの (おそらく無限の) 集合で、それはシーケンス内で非終端記号を、非終端記号が左辺である生成規則の右辺で繰り返し置換することから生じる
字句と正規表現の文法 (The Lexical and RegExp Grammars)
文法は終端記号として Unicode 文字セットの文字を持つ
目標記号 InputElementDiv や InputElementRegExp から始まる生成規則のセットを定義
Unicode文字のシーケンスが入力要素のシーケンス内でどのような処理がなされるか説明する
空白類及びコメント以外の入力要素は、 ECMAScript トークン (ECMAScript tokens) と呼ばれECMAScript の構文的文法に終端記号を形成する
これらのトークンは ECMAScript 言語の予約語、識別子、リテラルおよび接続子である
行終端子 (line terminator) はトークンだと考えられてはいないが、入力要素のストリームの一部になり、自動セミコロン挿入 (字句) のプロセスをガイドする
単純な空白類および一行のコメントは、廃棄されて構文的な文法用の入力要素のストリームに出現しない
MultiLineComment (1 行を超えるか範囲かどうか関係ない "/*…*/" 形式のコメント) が行終端子を含まない場合、同様に単に廃棄される
MultiLineComment が 1 つ以上の行終端子を含んでいる場合、それは 1 つの行終端子と置換され、それは構文的な文法用の入力要素のストリームの一部になる
ECMAScript のための RegExp 文法はセクション 15.10 に与えられる。この文法は、さらにその終端記号として Unicode 文字セットの文字を持つ。それは 1 セットの生成規則を定義し、目標記号パターンから開始して、 Unicode 文字のシーケンスが正規表現パターンにどのように翻訳されるか説明する。
字句と RegExp 文法の生成規則は、区切り分離として 2 つのコロン "::" を持つことで識別される。字句と RegExp 文法はいくつかの生成規則を共有する。
この文法は、さらにその終端記号として Unicode 文字セットの文字を持つ
文法は終端記号として Unicode 文字セットの文字を持つ
目標記号 InputElementDiv や InputElementRegExp から始まる生成規則のセットを定義
Unicode文字のシーケンスが入力要素のシーケンス内でどのような処理がなされるか説明する
空白類及びコメント以外の入力要素は、 ECMAScript トークン (ECMAScript tokens) と呼ばれECMAScript の構文的文法に終端記号を形成する
これらのトークンは ECMAScript 言語の予約語、識別子、リテラルおよび接続子である
行終端子 (line terminator) はトークンだと考えられてはいないが、入力要素のストリームの一部になり、自動セミコロン挿入 (字句) のプロセスをガイドする
単純な空白類および一行のコメントは、廃棄されて構文的な文法用の入力要素のストリームに出現しない
MultiLineComment (1 行を超えるか範囲かどうか関係ない "/*…*/" 形式のコメント) が行終端子を含まない場合、同様に単に廃棄される
MultiLineComment が 1 つ以上の行終端子を含んでいる場合、それは 1 つの行終端子と置換され、それは構文的な文法用の入力要素のストリームの一部になる
ECMAScript のための RegExp 文法はセクション 15.10 に与えられる。この文法は、さらにその終端記号として Unicode 文字セットの文字を持つ。それは 1 セットの生成規則を定義し、目標記号パターンから開始して、 Unicode 文字のシーケンスが正規表現パターンにどのように翻訳されるか説明する。
字句と RegExp 文法の生成規則は、区切り分離として 2 つのコロン "::" を持つことで識別される。字句と RegExp 文法はいくつかの生成規則を共有する。
この文法は、さらにその終端記号として Unicode 文字セットの文字を持つ
1 セットの生成規則を定義し、目標記号パターンから開始して、 Unicode 文字のシーケンスが正規表現パターンにどのように翻訳されるか説明する
字句と RegExp 文法の生成規則は、区切り分離として 2 つのコロン "::" を持つことで識別される。字句と RegExp 文法はいくつかの生成規則を共有する
数値文字の文法 (The Numeric String Grammar)
第二の文法は文字列をを数値の値に変換するのに使用される
文法は数値リテラルと関係する字句の文法の一部に似ていて、その終端記号として Unicode 文字集合の文字を持つ。
この文法は(型変換)に出現する
数値的文字文法の生成規則は、接続子として 3 つのコロン ":::" を用いて区別される
第二の文法は文字列をを数値の値に変換するのに使用される
文法は数値リテラルと関係する字句の文法の一部に似ていて、その終端記号として Unicode 文字集合の文字を持つ。
この文法は(型変換)に出現する
数値的文字文法の生成規則は、接続子として 3 つのコロン ":::" を用いて区別される
構文的文法 (The Syntactic Grammar)
ECMAScript のための構文的文法は(式, 文, 関数定義, プログラム)で扱う
文法は ECMAScript トークンを持ち、字句文法によってその終端記号として定義
生成規則の一集合を定義し、目標記号 Program(生成規則 Program:)から開始し、トークンのシーケンスがどのように構文上正しい ECMAScript プログラムを形成できるか説明する
Unicode 文字のストリームが ECMAScript プログラムとして解析されることになっている場合、それは字句文法の繰り返された適用によって、最初に入力要素のストリームに変換される; この入力要素のストリームはその後、構文文法の単一のアプリケーションによって解析される
残ったトークンのない、ゴール非終端記号Program の単一の実例として入力要素のストリームのトークンを解析できない場合、プログラムは構文上誤っている
構文的文法の生成規則は、接続子として 1 つのコロン ":" を用いて区別される
(式, 文, 関数定義, プログラム)の中で示される構文的文法は、トークンシーケンスが正しい ECMAScript プログラムとして認められる、現実に完全な説明ではない
疑う余地のない追加トークンシーケンス、すなわち、文法によって記述され、セミコロンだけが (行終端子文字の前のような) 確実な場所内のシーケンスに加えられた場合も受理される
終端子文字が確実に "不適当な" 場所に現われる場合、文法によって記述されるあるトークンシーケンスは、受理可能であるとは考えられない
ECMAScript のための構文的文法は(式, 文, 関数定義, プログラム)で扱う
文法は ECMAScript トークンを持ち、字句文法によってその終端記号として定義
生成規則の一集合を定義し、目標記号 Program(生成規則 Program:)から開始し、トークンのシーケンスがどのように構文上正しい ECMAScript プログラムを形成できるか説明する
Unicode 文字のストリームが ECMAScript プログラムとして解析されることになっている場合、それは字句文法の繰り返された適用によって、最初に入力要素のストリームに変換される; この入力要素のストリームはその後、構文文法の単一のアプリケーションによって解析される
残ったトークンのない、ゴール非終端記号Program の単一の実例として入力要素のストリームのトークンを解析できない場合、プログラムは構文上誤っている
構文的文法の生成規則は、接続子として 1 つのコロン ":" を用いて区別される
(式, 文, 関数定義, プログラム)の中で示される構文的文法は、トークンシーケンスが正しい ECMAScript プログラムとして認められる、現実に完全な説明ではない
疑う余地のない追加トークンシーケンス、すなわち、文法によって記述され、セミコロンだけが (行終端子文字の前のような) 確実な場所内のシーケンスに加えられた場合も受理される
終端子文字が確実に "不適当な" 場所に現われる場合、文法によって記述されるあるトークンシーケンスは、受理可能であるとは考えられない
文法記法 (Grammar Notation)
字句と文字列の文法の終端記号といくつかの構文文法の終端記号は、文法の生成規則内及びこの仕様を通して、テキストがそのような終端記号を直接参照するときは 等幅フォントであらわされる。これらはプログラム中に書かれるものとして出現する。この方法で指定される非終端記号の文字は全て、 ASCII の範囲から 適当な Unicode 文字として理解されるものであり、他の Unicode 範囲の類似した文字ではない。
非終端記号は イタリック体 であらわされる。非終端記号の定義は、一つ以上のコロンの続く定義されている非終端記号の名前によって案内される。(コロンの数は生成規則がどの文法に属するかを示す。) 非終端記号の一つ以上の代替の右辺は後続行に続く。
[訳注: この HTML 版邦訳でのフォントはこの限りではないかもしれない。]
例えば、次の構文定義:
WithStatement :
with ( Expression ) Statement
は、非終端記号 WithStatement がトークン with 、左括弧トークン、 Expression 、右括弧トークン、 Statement の続きをあらわすことを明言する。 Expression 及び Statement の出現はそれ自身非終端である。別な例として、次の構文定義:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
は、 ArgumentList が単一の AssignmentExpression 、または ArgumentList 、カンマ、 AssignmentExpression の続きのどちらかをあらわすかもしれないことを明言する。この ArgumentList の定義は再帰的で、つまり、自分自身の表現の中で定義される。結果として、 ArgumentList はカンマで区切られた任意の正数の引数で構成されうる。その各引数式のところは AssignmentExpression である。非終端記号のそのような再帰的定義が一般的である。
下付き文字による後置句 "opt" は、終端記号または非終端記号の後に出現でき、選択的記号を示す。代替構成の選択的記号は実際は 2 つの右辺を規定する。1 つは選択的要素を省いたもの、1 つは含めたものである。これはつまり:
VariableDeclaration :
Identifier Initialiseropt
は次の略記であるということだ:
VariableDeclaration :
Identifier
Identifier Initialiser
そして:
IterationStatement :
for ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement
は次の略記であり:
IterationStatement :
for ( ; Expressionopt ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expressionopt ; Expressionopt ) Statement
順に次の略記ということになり:
IterationStatement :
for ( ; ; Expressionopt ) Statement
for ( ; Expression ; Expressionopt ) Statement
for ( ExpressionNoIn ; ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expression ; Expressionopt ) Statement
順に次の略記ということになる:
IterationStatement :
for ( ; ; ) Statement
for ( ; ; Expression ) Statement
for ( ; Expression ; ) Statement
for ( ; Expression ; Expression ) Statement
for ( ExpressionNoIn ; ; ) Statement
for ( ExpressionNoIn ; ; Expression ) Statement
for ( ExpressionNoIn ; Expression ; ) Statement
for ( ExpressionNoIn ; Expression ; Expression ) Statement
従って非終端記号 IterationStatement は、実際には 8 個の代替右辺を持つ。
フレーズ "[empty]" が生成規則の右辺に出現するならば、それは生成規則の右辺が終端記号も非終端記号も含まないことを示す。
フレーズ "[lookahead ∉ set]" が生成規則の右辺に出現する場合は、直後の入力終端記号が与えられた set の元ならば、生成規則が使われないことを示す。 set は { } 内に囲まれた終端記号のリストとして書くことが出来る。簡潔に言えば、 set は非終端記号として書くことも出来る。その場合、非終端記号から展開可能な終端記号の全てをあらわす。例えば、定義
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
DecimalDigits ::
DecimalDigit
DecimalDigits DecimalDigit
を与えられて、定義
LookaheadExample ::
n [lookahead ∉ {1, 3, 5, 7, 9} ] DecimalDigits
DecimalDigit [lookahead ∉ DecimalDigit ]
は、偶数で始まる一つ以上の数字が続く文字 n 、あるいは他の数字が続かない数字にマッチする。
フレーズ "[no LineTerminator here]" 構文的文法の生成規則の右辺に出現する場合、生成規則が 制限生成規則 (restricted production) であることを示す: 入力ストリームの示された位置に LineTerminator が出現しなければ使用できない。例えば、次の生成規則:
ReturnStatement :
return [LineTerminator 無し] Expressionopt ;
プログラム内の return トークンと Expression の間に LineTerminator が出現する場合はこの生成規則は使用できない。
LineTerminator の存在が制限生成規則に隠されなければ、入力要素のストリーム内の 2 つの連続するトークン間に LineTerminator はいくつでも出現でき、プログラムの構文的受容性に影響を与えない。
文法定義内のコロンに語句 "one of" が続く場合、後続行の終端記号のそれぞれが代替定義であることを意味する。例えば、ECMAScript の字句文法は次の生成規則を含む:
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
これは単に次の略記である:
NonZeroDigit :: one of
1
2
3
4
5
6
7
8
9
字句文法また数値文字文法の生成規則内の代替が複数文字トークンである場合、そのトークンを作る文字シーケンスをあらわす。
生成規則の右辺は、フレーズ "but not" を用いてある展開が許可されないことを規定してよく、その展開は除外される。例えば、次の生成規則:
Identifier ::
IdentifierName but not ReservedWord
は、非終端記号 Identifier が IdentifierName に置換可能だが ReservedWord で置換不可能な文字シーケンスであることを意味する。
最後に、全ての代替をすべてあげるのが現実的でないいくつかの非終端記号が、ローマン体の説明的フレーズで記述される:
SourceCharacter ::
any Unicode character
5.2 アルゴリズム記述について (Algorithm Conventions)
非終端記号は イタリック体 であらわされる。非終端記号の定義は、一つ以上のコロンの続く定義されている非終端記号の名前によって案内される。(コロンの数は生成規則がどの文法に属するかを示す。) 非終端記号の一つ以上の代替の右辺は後続行に続く。
[訳注: この HTML 版邦訳でのフォントはこの限りではないかもしれない。]
例えば、次の構文定義:
WithStatement :
with ( Expression ) Statement
は、非終端記号 WithStatement がトークン with 、左括弧トークン、 Expression 、右括弧トークン、 Statement の続きをあらわすことを明言する。 Expression 及び Statement の出現はそれ自身非終端である。別な例として、次の構文定義:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
は、 ArgumentList が単一の AssignmentExpression 、または ArgumentList 、カンマ、 AssignmentExpression の続きのどちらかをあらわすかもしれないことを明言する。この ArgumentList の定義は再帰的で、つまり、自分自身の表現の中で定義される。結果として、 ArgumentList はカンマで区切られた任意の正数の引数で構成されうる。その各引数式のところは AssignmentExpression である。非終端記号のそのような再帰的定義が一般的である。
下付き文字による後置句 "opt" は、終端記号または非終端記号の後に出現でき、選択的記号を示す。代替構成の選択的記号は実際は 2 つの右辺を規定する。1 つは選択的要素を省いたもの、1 つは含めたものである。これはつまり:
VariableDeclaration :
Identifier Initialiseropt
は次の略記であるということだ:
VariableDeclaration :
Identifier
Identifier Initialiser
そして:
IterationStatement :
for ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement
は次の略記であり:
IterationStatement :
for ( ; Expressionopt ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expressionopt ; Expressionopt ) Statement
順に次の略記ということになり:
IterationStatement :
for ( ; ; Expressionopt ) Statement
for ( ; Expression ; Expressionopt ) Statement
for ( ExpressionNoIn ; ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expression ; Expressionopt ) Statement
順に次の略記ということになる:
IterationStatement :
for ( ; ; ) Statement
for ( ; ; Expression ) Statement
for ( ; Expression ; ) Statement
for ( ; Expression ; Expression ) Statement
for ( ExpressionNoIn ; ; ) Statement
for ( ExpressionNoIn ; ; Expression ) Statement
for ( ExpressionNoIn ; Expression ; ) Statement
for ( ExpressionNoIn ; Expression ; Expression ) Statement
従って非終端記号 IterationStatement は、実際には 8 個の代替右辺を持つ。
フレーズ "[empty]" が生成規則の右辺に出現するならば、それは生成規則の右辺が終端記号も非終端記号も含まないことを示す。
フレーズ "[lookahead ∉ set]" が生成規則の右辺に出現する場合は、直後の入力終端記号が与えられた set の元ならば、生成規則が使われないことを示す。 set は { } 内に囲まれた終端記号のリストとして書くことが出来る。簡潔に言えば、 set は非終端記号として書くことも出来る。その場合、非終端記号から展開可能な終端記号の全てをあらわす。例えば、定義
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
DecimalDigits ::
DecimalDigit
DecimalDigits DecimalDigit
を与えられて、定義
LookaheadExample ::
n [lookahead ∉ {1, 3, 5, 7, 9} ] DecimalDigits
DecimalDigit [lookahead ∉ DecimalDigit ]
は、偶数で始まる一つ以上の数字が続く文字 n 、あるいは他の数字が続かない数字にマッチする。
フレーズ "[no LineTerminator here]" 構文的文法の生成規則の右辺に出現する場合、生成規則が 制限生成規則 (restricted production) であることを示す: 入力ストリームの示された位置に LineTerminator が出現しなければ使用できない。例えば、次の生成規則:
ReturnStatement :
return [LineTerminator 無し] Expressionopt ;
プログラム内の return トークンと Expression の間に LineTerminator が出現する場合はこの生成規則は使用できない。
LineTerminator の存在が制限生成規則に隠されなければ、入力要素のストリーム内の 2 つの連続するトークン間に LineTerminator はいくつでも出現でき、プログラムの構文的受容性に影響を与えない。
文法定義内のコロンに語句 "one of" が続く場合、後続行の終端記号のそれぞれが代替定義であることを意味する。例えば、ECMAScript の字句文法は次の生成規則を含む:
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
これは単に次の略記である:
NonZeroDigit :: one of
1
2
3
4
5
6
7
8
9
字句文法また数値文字文法の生成規則内の代替が複数文字トークンである場合、そのトークンを作る文字シーケンスをあらわす。
生成規則の右辺は、フレーズ "but not" を用いてある展開が許可されないことを規定してよく、その展開は除外される。例えば、次の生成規則:
Identifier ::
IdentifierName but not ReservedWord
は、非終端記号 Identifier が IdentifierName に置換可能だが ReservedWord で置換不可能な文字シーケンスであることを意味する。
最後に、全ての代替をすべてあげるのが現実的でないいくつかの非終端記号が、ローマン体の説明的フレーズで記述される:
SourceCharacter ::
any Unicode character
5.2 アルゴリズム記述について (Algorithm Conventions)
仕様はしばしば番号を振ったリストを用いて、アルゴリズム内のステップを規定する。これらのアルゴリズムは意味論を明確にするために用いられる。実際には、与えられる機能の実装に有効な、より能率的なアルゴリズムであってよい。
アルゴリズムが結果として値を生成するとき "x を返す" が用いられ、アルゴリズムの結果が x の値であり、アルゴリズムが終了すべきであることを示す。表記 Result(n) は "ステップ n の結果" の略記である。Type(x) は "x の型" の略記である。
本セクションで後に述べる加法、減法、否定、乗法、除法、数学的関数のような数学的操作は、常に、無限及び正の 0 から区別される負の 0 を含まない数学的な実数上の厳密な数学的結果を演算するものとして理解されるべきである。浮動小数点数計算を作るこの標準のアルゴリズムは、必要に応じて、無限と符号付きの 0 を操作し丸めの実行する、明示的なステップを含む。数学的操作または関数が浮動小数点数に適用される場合、その浮動小数点数\であらわされる厳密な数学的値に適用されるものとして理解されるべきである; そのような浮動小数点数は有限であるべきで、そして +0 または -0 ならば該当する数学的値は単に 0 である。
数学関数 abs(x) は x の絶対値をもたらし、 x が負(0 未満) なら -x 、そうでなければ x 自身である。
数学関数 sign(x) は、 x が正ならば 1、 x が負ならば -1 をもたらす。 x が 0 のときのための sign 関数はこの標準では用いられない。
記法 "x modulo y" (y は 0 以外の有限数) は、ある整数 q について abs(k) < abs(y) かつ x - k = q * y であるような、 y (又は 0) と同じ符号の値 k を算出する。
数学関数 floor(x) は x より大きくない最大の整数 (正の無限に接近する) をもたらす。
NOTE floor(x) = x - (x modulo 1).
アルゴリズムが "例外を投げる" と定義されていれば、アルゴリズムの実行は終了し、結果を何も返さない。アルゴリズム呼出しも終了し、 "例外が投げられたら…" のような用語を用いて、アルゴリズムのステップが明示的に例外を扱うに至る。一度そのようなアルゴリズムのステップに遭遇したらそれ以上例外の発生は考慮されない。
アルゴリズムが結果として値を生成するとき "x を返す" が用いられ、アルゴリズムの結果が x の値であり、アルゴリズムが終了すべきであることを示す。表記 Result(n) は "ステップ n の結果" の略記である。Type(x) は "x の型" の略記である。
本セクションで後に述べる加法、減法、否定、乗法、除法、数学的関数のような数学的操作は、常に、無限及び正の 0 から区別される負の 0 を含まない数学的な実数上の厳密な数学的結果を演算するものとして理解されるべきである。浮動小数点数計算を作るこの標準のアルゴリズムは、必要に応じて、無限と符号付きの 0 を操作し丸めの実行する、明示的なステップを含む。数学的操作または関数が浮動小数点数に適用される場合、その浮動小数点数\であらわされる厳密な数学的値に適用されるものとして理解されるべきである; そのような浮動小数点数は有限であるべきで、そして +0 または -0 ならば該当する数学的値は単に 0 である。
数学関数 abs(x) は x の絶対値をもたらし、 x が負(0 未満) なら -x 、そうでなければ x 自身である。
数学関数 sign(x) は、 x が正ならば 1、 x が負ならば -1 をもたらす。 x が 0 のときのための sign 関数はこの標準では用いられない。
記法 "x modulo y" (y は 0 以外の有限数) は、ある整数 q について abs(k) < abs(y) かつ x - k = q * y であるような、 y (又は 0) と同じ符号の値 k を算出する。
数学関数 floor(x) は x より大きくない最大の整数 (正の無限に接近する) をもたらす。
NOTE floor(x) = x - (x modulo 1).
アルゴリズムが "例外を投げる" と定義されていれば、アルゴリズムの実行は終了し、結果を何も返さない。アルゴリズム呼出しも終了し、 "例外が投げられたら…" のような用語を用いて、アルゴリズムのステップが明示的に例外を扱うに至る。一度そのようなアルゴリズムのステップに遭遇したらそれ以上例外の発生は考慮されない。
ソーステキスト
文法記法 (Grammar Notation)
文法記法 (Grammar Notation)
字句と文字列の文法の終端記号といくつかの構文文法の終端記号は、文法の生成規則内及びこの仕様を通して、テキストがそのような終端記号を直接参照するときは 等幅フォントであらわされる。これらはプログラム中に書かれるものとして出現する。この方法で指定される非終端記号の文字は全て、 ASCII の範囲から 適当な Unicode 文字として理解されるものであり、他の Unicode 範囲の類似した文字ではない。
非終端記号は イタリック体 であらわされる。非終端記号の定義は、一つ以上のコロンの続く定義されている非終端記号の名前によって案内される。(コロンの数は生成規則がどの文法に属するかを示す。) 非終端記号の一つ以上の代替の右辺は後続行に続く。
[訳注: この HTML 版邦訳でのフォントはこの限りではないかもしれない。]
例えば、次の構文定義:
WithStatement :
with ( Expression ) Statement
は、非終端記号 WithStatement がトークン with 、左括弧トークン、 Expression 、右括弧トークン、 Statement の続きをあらわすことを明言する。 Expression 及び Statement の出現はそれ自身非終端である。別な例として、次の構文定義:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
は、 ArgumentList が単一の AssignmentExpression 、または ArgumentList 、カンマ、 AssignmentExpression の続きのどちらかをあらわすかもしれないことを明言する。この ArgumentList の定義は再帰的で、つまり、自分自身の表現の中で定義される。結果として、 ArgumentList はカンマで区切られた任意の正数の引数で構成されうる。その各引数式のところは AssignmentExpression である。非終端記号のそのような再帰的定義が一般的である。
下付き文字による後置句 "opt" は、終端記号または非終端記号の後に出現でき、選択的記号を示す。代替構成の選択的記号は実際は 2 つの右辺を規定する。1 つは選択的要素を省いたもの、1 つは含めたものである。これはつまり:
VariableDeclaration :
Identifier Initialiseropt
は次の略記であるということだ:
VariableDeclaration :
Identifier
Identifier Initialiser
そして:
IterationStatement :
for ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement
は次の略記であり:
IterationStatement :
for ( ; Expressionopt ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expressionopt ; Expressionopt ) Statement
順に次の略記ということになり:
IterationStatement :
for ( ; ; Expressionopt ) Statement
for ( ; Expression ; Expressionopt ) Statement
for ( ExpressionNoIn ; ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expression ; Expressionopt ) Statement
順に次の略記ということになる:
IterationStatement :
for ( ; ; ) Statement
for ( ; ; Expression ) Statement
for ( ; Expression ; ) Statement
for ( ; Expression ; Expression ) Statement
for ( ExpressionNoIn ; ; ) Statement
for ( ExpressionNoIn ; ; Expression ) Statement
for ( ExpressionNoIn ; Expression ; ) Statement
for ( ExpressionNoIn ; Expression ; Expression ) Statement
従って非終端記号 IterationStatement は、実際には 8 個の代替右辺を持つ。
フレーズ "[empty]" が生成規則の右辺に出現するならば、それは生成規則の右辺が終端記号も非終端記号も含まないことを示す。
フレーズ "[lookahead ∉ set]" が生成規則の右辺に出現する場合は、直後の入力終端記号が与えられた set の元ならば、生成規則が使われないことを示す。 set は { } 内に囲まれた終端記号のリストとして書くことが出来る。簡潔に言えば、 set は非終端記号として書くことも出来る。その場合、非終端記号から展開可能な終端記号の全てをあらわす。例えば、定義
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
DecimalDigits ::
DecimalDigit
DecimalDigits DecimalDigit
を与えられて、定義
LookaheadExample ::
n [lookahead ∉ {1, 3, 5, 7, 9} ] DecimalDigits
DecimalDigit [lookahead ∉ DecimalDigit ]
は、偶数で始まる一つ以上の数字が続く文字 n 、あるいは他の数字が続かない数字にマッチする。
フレーズ "[no LineTerminator here]" 構文的文法の生成規則の右辺に出現する場合、生成規則が 制限生成規則 (restricted production) であることを示す: 入力ストリームの示された位置に LineTerminator が出現しなければ使用できない。例えば、次の生成規則:
ReturnStatement :
return [LineTerminator 無し] Expressionopt ;
プログラム内の return トークンと Expression の間に LineTerminator が出現する場合はこの生成規則は使用できない。
LineTerminator の存在が制限生成規則に隠されなければ、入力要素のストリーム内の 2 つの連続するトークン間に LineTerminator はいくつでも出現でき、プログラムの構文的受容性に影響を与えない。
文法定義内のコロンに語句 "one of" が続く場合、後続行の終端記号のそれぞれが代替定義であることを意味する。例えば、ECMAScript の字句文法は次の生成規則を含む:
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
これは単に次の略記である:
NonZeroDigit :: one of
1
2
3
4
5
6
7
8
9
字句文法また数値文字文法の生成規則内の代替が複数文字トークンである場合、そのトークンを作る文字シーケンスをあらわす。
生成規則の右辺は、フレーズ "but not" を用いてある展開が許可されないことを規定してよく、その展開は除外される。例えば、次の生成規則:
Identifier ::
IdentifierName but not ReservedWord
は、非終端記号 Identifier が IdentifierName に置換可能だが ReservedWord で置換不可能な文字シーケンスであることを意味する。
最後に、全ての代替をすべてあげるのが現実的でないいくつかの非終端記号が、ローマン体の説明的フレーズで記述される:
SourceCharacter ::
any Unicode character
5.2 アルゴリズム記述について (Algorithm Conventions)
非終端記号は イタリック体 であらわされる。非終端記号の定義は、一つ以上のコロンの続く定義されている非終端記号の名前によって案内される。(コロンの数は生成規則がどの文法に属するかを示す。) 非終端記号の一つ以上の代替の右辺は後続行に続く。
[訳注: この HTML 版邦訳でのフォントはこの限りではないかもしれない。]
例えば、次の構文定義:
WithStatement :
with ( Expression ) Statement
は、非終端記号 WithStatement がトークン with 、左括弧トークン、 Expression 、右括弧トークン、 Statement の続きをあらわすことを明言する。 Expression 及び Statement の出現はそれ自身非終端である。別な例として、次の構文定義:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
は、 ArgumentList が単一の AssignmentExpression 、または ArgumentList 、カンマ、 AssignmentExpression の続きのどちらかをあらわすかもしれないことを明言する。この ArgumentList の定義は再帰的で、つまり、自分自身の表現の中で定義される。結果として、 ArgumentList はカンマで区切られた任意の正数の引数で構成されうる。その各引数式のところは AssignmentExpression である。非終端記号のそのような再帰的定義が一般的である。
下付き文字による後置句 "opt" は、終端記号または非終端記号の後に出現でき、選択的記号を示す。代替構成の選択的記号は実際は 2 つの右辺を規定する。1 つは選択的要素を省いたもの、1 つは含めたものである。これはつまり:
VariableDeclaration :
Identifier Initialiseropt
は次の略記であるということだ:
VariableDeclaration :
Identifier
Identifier Initialiser
そして:
IterationStatement :
for ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement
は次の略記であり:
IterationStatement :
for ( ; Expressionopt ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expressionopt ; Expressionopt ) Statement
順に次の略記ということになり:
IterationStatement :
for ( ; ; Expressionopt ) Statement
for ( ; Expression ; Expressionopt ) Statement
for ( ExpressionNoIn ; ; Expressionopt ) Statement
for ( ExpressionNoIn ; Expression ; Expressionopt ) Statement
順に次の略記ということになる:
IterationStatement :
for ( ; ; ) Statement
for ( ; ; Expression ) Statement
for ( ; Expression ; ) Statement
for ( ; Expression ; Expression ) Statement
for ( ExpressionNoIn ; ; ) Statement
for ( ExpressionNoIn ; ; Expression ) Statement
for ( ExpressionNoIn ; Expression ; ) Statement
for ( ExpressionNoIn ; Expression ; Expression ) Statement
従って非終端記号 IterationStatement は、実際には 8 個の代替右辺を持つ。
フレーズ "[empty]" が生成規則の右辺に出現するならば、それは生成規則の右辺が終端記号も非終端記号も含まないことを示す。
フレーズ "[lookahead ∉ set]" が生成規則の右辺に出現する場合は、直後の入力終端記号が与えられた set の元ならば、生成規則が使われないことを示す。 set は { } 内に囲まれた終端記号のリストとして書くことが出来る。簡潔に言えば、 set は非終端記号として書くことも出来る。その場合、非終端記号から展開可能な終端記号の全てをあらわす。例えば、定義
DecimalDigit :: one of
0 1 2 3 4 5 6 7 8 9
DecimalDigits ::
DecimalDigit
DecimalDigits DecimalDigit
を与えられて、定義
LookaheadExample ::
n [lookahead ∉ {1, 3, 5, 7, 9} ] DecimalDigits
DecimalDigit [lookahead ∉ DecimalDigit ]
は、偶数で始まる一つ以上の数字が続く文字 n 、あるいは他の数字が続かない数字にマッチする。
フレーズ "[no LineTerminator here]" 構文的文法の生成規則の右辺に出現する場合、生成規則が 制限生成規則 (restricted production) であることを示す: 入力ストリームの示された位置に LineTerminator が出現しなければ使用できない。例えば、次の生成規則:
ReturnStatement :
return [LineTerminator 無し] Expressionopt ;
プログラム内の return トークンと Expression の間に LineTerminator が出現する場合はこの生成規則は使用できない。
LineTerminator の存在が制限生成規則に隠されなければ、入力要素のストリーム内の 2 つの連続するトークン間に LineTerminator はいくつでも出現でき、プログラムの構文的受容性に影響を与えない。
文法定義内のコロンに語句 "one of" が続く場合、後続行の終端記号のそれぞれが代替定義であることを意味する。例えば、ECMAScript の字句文法は次の生成規則を含む:
NonZeroDigit :: one of
1 2 3 4 5 6 7 8 9
これは単に次の略記である:
NonZeroDigit :: one of
1
2
3
4
5
6
7
8
9
字句文法また数値文字文法の生成規則内の代替が複数文字トークンである場合、そのトークンを作る文字シーケンスをあらわす。
生成規則の右辺は、フレーズ "but not" を用いてある展開が許可されないことを規定してよく、その展開は除外される。例えば、次の生成規則:
Identifier ::
IdentifierName but not ReservedWord
は、非終端記号 Identifier が IdentifierName に置換可能だが ReservedWord で置換不可能な文字シーケンスであることを意味する。
最後に、全ての代替をすべてあげるのが現実的でないいくつかの非終端記号が、ローマン体の説明的フレーズで記述される:
SourceCharacter ::
any Unicode character
5.2 アルゴリズム記述について (Algorithm Conventions)
仕様はしばしば番号を振ったリストを用いて、アルゴリズム内のステップを規定する。これらのアルゴリズムは意味論を明確にするために用いられる。実際には、与えられる機能の実装に有効な、より能率的なアルゴリズムであってよい。
アルゴリズムが結果として値を生成するとき "x を返す" が用いられ、アルゴリズムの結果が x の値であり、アルゴリズムが終了すべきであることを示す。表記 Result(n) は "ステップ n の結果" の略記である。Type(x) は "x の型" の略記である。
本セクションで後に述べる加法、減法、否定、乗法、除法、数学的関数のような数学的操作は、常に、無限及び正の 0 から区別される負の 0 を含まない数学的な実数上の厳密な数学的結果を演算するものとして理解されるべきである。浮動小数点数計算を作るこの標準のアルゴリズムは、必要に応じて、無限と符号付きの 0 を操作し丸めの実行する、明示的なステップを含む。数学的操作または関数が浮動小数点数に適用される場合、その浮動小数点数\であらわされる厳密な数学的値に適用されるものとして理解されるべきである; そのような浮動小数点数は有限であるべきで、そして +0 または -0 ならば該当する数学的値は単に 0 である。
数学関数 abs(x) は x の絶対値をもたらし、 x が負(0 未満) なら -x 、そうでなければ x 自身である。
数学関数 sign(x) は、 x が正ならば 1、 x が負ならば -1 をもたらす。 x が 0 のときのための sign 関数はこの標準では用いられない。
記法 "x modulo y" (y は 0 以外の有限数) は、ある整数 q について abs(k) < abs(y) かつ x - k = q * y であるような、 y (又は 0) と同じ符号の値 k を算出する。
数学関数 floor(x) は x より大きくない最大の整数 (正の無限に接近する) をもたらす。
NOTE floor(x) = x - (x modulo 1).
アルゴリズムが "例外を投げる" と定義されていれば、アルゴリズムの実行は終了し、結果を何も返さない。アルゴリズム呼出しも終了し、 "例外が投げられたら…" のような用語を用いて、アルゴリズムのステップが明示的に例外を扱うに至る。一度そのようなアルゴリズムのステップに遭遇したらそれ以上例外の発生は考慮されない
アルゴリズムが結果として値を生成するとき "x を返す" が用いられ、アルゴリズムの結果が x の値であり、アルゴリズムが終了すべきであることを示す。表記 Result(n) は "ステップ n の結果" の略記である。Type(x) は "x の型" の略記である。
本セクションで後に述べる加法、減法、否定、乗法、除法、数学的関数のような数学的操作は、常に、無限及び正の 0 から区別される負の 0 を含まない数学的な実数上の厳密な数学的結果を演算するものとして理解されるべきである。浮動小数点数計算を作るこの標準のアルゴリズムは、必要に応じて、無限と符号付きの 0 を操作し丸めの実行する、明示的なステップを含む。数学的操作または関数が浮動小数点数に適用される場合、その浮動小数点数\であらわされる厳密な数学的値に適用されるものとして理解されるべきである; そのような浮動小数点数は有限であるべきで、そして +0 または -0 ならば該当する数学的値は単に 0 である。
数学関数 abs(x) は x の絶対値をもたらし、 x が負(0 未満) なら -x 、そうでなければ x 自身である。
数学関数 sign(x) は、 x が正ならば 1、 x が負ならば -1 をもたらす。 x が 0 のときのための sign 関数はこの標準では用いられない。
記法 "x modulo y" (y は 0 以外の有限数) は、ある整数 q について abs(k) < abs(y) かつ x - k = q * y であるような、 y (又は 0) と同じ符号の値 k を算出する。
数学関数 floor(x) は x より大きくない最大の整数 (正の無限に接近する) をもたらす。
NOTE floor(x) = x - (x modulo 1).
アルゴリズムが "例外を投げる" と定義されていれば、アルゴリズムの実行は終了し、結果を何も返さない。アルゴリズム呼出しも終了し、 "例外が投げられたら…" のような用語を用いて、アルゴリズムのステップが明示的に例外を扱うに至る。一度そのようなアルゴリズムのステップに遭遇したらそれ以上例外の発生は考慮されない
字句
型
型変換
実行コンテキスト
式
文
関数定義
プログラム
重要項目なので別に移すかもしれない
重要項目なので別に移すかもしれない
ネイティブECMAオブジェクト
オブジェクト(Global, Object, Function, Array, String, Boolean, Number, Math, Date, RegExp, Error)
項目、総量が多いので別枠に記載
項目、総量が多いので別枠に記載
文法要約
互換性