JavaScript の eval 関数を使用するのはなぜ悪い考えなのでしょうか? 質問する

JavaScript の eval 関数を使用するのはなぜ悪い考えなのでしょうか? 質問する

eval 関数はコードを動的に生成する強力かつ簡単な方法ですが、注意点は何でしょうか?

ベストアンサー1

  1. evalを不適切に使用すると、コードがインジェクション攻撃にさらされる可能性がある。

  2. デバッグはより困難になる可能性があります (行番号などがない)

  3. 評価されたコードの実行速度が遅くなります(評価されたコードをコンパイル/キャッシュする機会がありません)

編集: @Jeff Walden がコメントで指摘しているように、#3 は 2008 年よりも今日では当てはまりません。ただし、コンパイルされたスクリプトの一部がキャッシュされる可能性はありますが、これは変更なしで繰り返し評価されるスクリプトに限定されます。より可能性が高いシナリオは、毎回わずかに変更されたスクリプトを評価しているため、キャッシュできないことです。評価されたコードの一部は実行速度が遅くなるとだけ言っておきます。

おすすめ記事