this キーワードnew 演算子 (The new Operator)super キーワード (The super Keyword)? : ) (Conditional Operator), ) (Comma Operator)if 文do-while 文while 文for 文for-in, for-of, for-await-of 文continue 文break 文return 文with 文switch 文throw 文try 文debugger 文?um/p1-90`ECMAScript ソーステキスト は Unicode 符号位置の列である。ECMAScript 文法で許容される箇所であれば、U+0000 から U+10FFFF までのすべての Unicode 符号位置(サロゲートコードポイントを含む)が ECMAScript ソーステキスト中に現れうる。ECMAScript ソーステキストを格納または交換するために実際に用いられるエンコーディングは本仕様にとって本質的ではない。外部的なソーステキストのエンコーディングに関わらず、適合する ECMAScript 実装はソーステキストを、各
結合文字シーケンスの構成要素は、利用者がその全体を 1 文字と捉える可能性があっても、個々の独立した Unicode 符号位置として扱われる。
文字列リテラル、正規表現リテラル、テンプレートリテラル、および識別子においては、任意の Unicode 符号位置をその数値値を明示的に表す Unicode エスケープシーケンスで表現することもできる。コメント内では、そのようなエスケープシーケンスはコメントの一部として実質的に無視される。
ECMAScript は Unicode エスケープシーケンスの挙動において Java プログラミング言語と異なる。例えば Java プログラムにおいて Unicode エスケープ \u000A が単一行コメント内に現れた場合、それは行終端子(Unicode 符号位置 U+000A は LINE FEED (LF))として解釈され、次の符号位置はそのコメントの一部ではなくなる。同様に Java の文字列リテラル内で \u000A が現れると、それは文字列リテラル内に許可されない行終端子として解釈される——文字列リテラルの値に LF を含めるには \u000A ではなく \n と書かなければならない。ECMAScript プログラムでは、コメント中の Unicode エスケープシーケンスが解釈されることは決してなく、従ってコメント終端に寄与しない。同様に、ECMAScript プログラム内の文字列リテラル中に現れる Unicode エスケープシーケンスは常にリテラル内容に寄与し、行終端子として、あるいは文字列リテラルを終端させうる符号位置として解釈されることはない。
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. text を
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. UTF-16
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. string を
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. string を
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
ある箇所に早期エラーが存在し、後続位置に構文エラーが存在するテキストを考える。パース後に早期エラー検査を行う実装は構文エラーを報告し、早期エラー検査へ進まないかもしれない。両者をインターリーブする実装は早期エラーを報告し構文エラー検出を行わないかもしれない。第三の実装は両方のエラーを報告するかもしれない。これらの挙動はいずれも適合である。
ECMAScript コードには 4 種類がある:
eval 関数へ与えられたソーステキストである。より正確には、組み込み eval 関数のパラメータが String の場合、それは ECMAScript eval 呼び出しにおける eval コードはその 関数コード (Function code) は ECMAScript
さらに、上記ソーステキストが次のようにパースされる場合:
そのとき、その宣言または式の
関数コードは一般に Function 定義(
ディレクティブプロローグ (Directive Prologue) とは、
Use Strict ディレクティブ (Use Strict Directive) は、その "use strict" または 'use strict' のいずれかの符号位置列であるディレクティブプロローグ中の
ディレクティブプロローグは複数の Use Strict ディレクティブを含んでもよい。ただし実装はこれが発生した場合に警告を出してよい。
ディレクティブプロローグの
ECMAScript の構文単位は制限のない(非 strict)または strict モードの構文とセマンティクス(
eval 呼び出しが strict mode code 内に含まれる直接 eval である場合。
strict mode code でない ECMAScript コードは non-strict code と呼ばれる。
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
ECMAScript 実装は、評価挙動が