訳の正確性を保証するものではありませんので必要に応じて原文であるEcma InternationalのECMA-262にある ECMA-262.pdf ( ECMA-262 5.1 Edition )を参照下さい。
訳:2012年04月 webzoit.net
ECMAScript言語は、言語の利用者が、言語内で利用可能な一部の機能の利用を制限することがあるという可能性を認識しています。 それらは、エラーの発生しやすい機能であると考えるものを回避する為、強化したエラーチェック結果を得る為、もしくは彼らの選択肢の他の何らかの理由などセキュリティへの関心からその様にするかもしれません。 この可能性へのサポートとしては、ECMAScriptは、言語の厳格なvariant型(どんな型でも格納可能な型)を定義します。 言語の厳格なvariantは、通常のECMAScript言語の一部の構文とセマンティックの仕様と一部機能の詳細化したセマンティックスへの改訂を除外します。 その言語の厳格でない書式によってエラーとして指定されない状況において例外エラーを投げることによって報告されなければならない付加的なエラー条件も指定します。 ECMAScript言語の厳格なvariantは、言語の strict mode (厳格モード)として参照されるのが、一般的です。 厳格モードの選択とECMAScriptの構文とセマンティックをstrictモードとして利用することは、単独のECMAScriptのコードユニットのレベルで明示的に行われます。 なぜならstrictモードは、構文上のコードユニットのレベルにおいて選択され、strictモードは、唯一このようなコードユニット内でローカル効果を持つ制限を課すからです。 Strictモードは、複数のコードユニットを超えた構成を制御しなければならないECMAScriptのセマンティック上の一部の局面に対し、制約を設けたり、修正したりはしません。 ECMAScriptプログラム全体としては、厳格モードと厳格モードでないECMAScriptコードユニット双方で構成される場合があります。 このケースにおいてはstrictモードは唯一、実際に実行中のコードが、strictモードのコードユニット内で定義される際に適用されます。 この仕様への確認の為にECMAScriptの実装は、全く制限のないECMAScript言語とこの仕様によって定義したECMAScript言語のstrictモードのvariantの両方を実装しなければいけません。 加えて実装は、単一の複合プログラムについて制約がない場合とstrictモードのコードユニットとの組み合わせをサポートしなければいけません。