Javascript関数が与えられた場合、その関数に副作用がないことを確認することは可能ですか。つまり、関数は、関数のスコープ外で宣言された変数の値を変更しませんか?
質問する
391 次
2 に答える
4
JavaScriptの効果分析を作成する必要があります。これには、JavaScriptの効果セマンティクスが必要です。考慮すべき点のいくつか:
- コードは副作用のあるプリミティブ操作にアクセスしますか?(例:メモリ書き込み、ディスク書き込み、ファイルIO、グローバル状態の更新?)
- コードが実際に変数に書き込む場合、それらはローカルスコープをエスケープしますか?(つまり、STまたはIOモナドにありますか?)
- 共有変数を介して行われる通信はありますか?
人々は、副作用が存在するかどうかを静的に判断するために、不純な言語の型システムを作成しました。ベン・リップマイヤーの論文は多くの分野をカバーしています。
于 2012-05-19T05:29:00.987 に答える
-1
関数yes内で定義されていない変数にアクセスする場合は、もちろん、同じ名前を持つ可能性のあるグローバル変数に影響します。
JSLintとADSafeを調べて、これらのツールに対してファイルを実行できます。
HTH。
于 2012-05-19T05:16:20.087 に答える