ES5 標準モードのスクリプトへのコードの移植

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む1読むのに数分
  • ES5 標準モードでは、互換モードで許容されるエラーが捕捉されます。

    ES5 標準モードを使用して既存のスクリプトから新しいスコープ対象のスクリプトにコードを移植する際の注意事項

    ECMAScript5 は、new Boolean(false) という語を true に評価します。互換モードでは false と評価されていました。

    存在しないプロパティが参照されると、ECMAScript5 は EcmaError をスローします。互換モードでは、エラーはスローされませんでした。

    存在しない関数が呼び出されると、ECMAScript5 は EcmaError をスローします。互換モードでは、エラーはスローされませんでした。

    ECMAScript5 は新しい行を正しく処理します。以前は、コメントの後の改行文字が認識されていましたが、これは誤りです。この例では、互換モードで 3 つの関数がすべて呼び出されます。ECMAScript5 では、最初の関数のみが呼び出されます。
    var expr = doFoo();  // do foo
               doBar();  // do bar 
               finish();   // all done
     eval(expr);
    
    ECMAScript5 では、末尾インクリメントとデクリメントが正しく処理されます。この例では、互換モードの場合に変数 x がインクリメントされた値を取得しますが、これは誤りです。
    var x = gr.limit++;