新しい JavaScript アプリケーションを開始しており、厳格モードを使用したいと考えています。ただし、strict モードをサポートしていない一部の古いブラウザー (IE8、9) は引き続きサポートする必要があります。私の同僚の何人かは、strict モードに伴うランタイム セマンティクスの変更について心配しています。彼らは、古いブラウザで lax モードで実行すると、strict 関数が異なる動作をすることを懸念しています。
関数が lax モードで strict モードと同じランタイム セマンティクスを持つようにするために追加できる一連の追加の制限はありますか? 具体的には、自動化されたリントのようなツールでチェックできる一連のルールが必要です。私の最初の考えは、人々がeval
orを使用できないようにすることarguments
です。それで十分でしょうか?
これを実現するために、coffeescript でのコーディングは役立ちますか?
たとえば、次の関数を考えてみましょう。
(function(){
'use strict';
function foo(bar) {
arguments[0] = 'You are in lax mode';
alert(bar);
}
foo('You are in strict mode');
})();
この関数は、strict モードでは正しく動作しますが、lax モードでは動作が異なります。人々が誤ってこれを行うことがないようにする一連のルールを探しています。