→、
指定の文字列を JavaScript コードとして評価します。
警告: 文字列から JavaScript を実行することは、非常に大きなセキュリティ リスクを伴います。eval() を使用すると、悪意のある者が任意のコードを実行するのはあまりにも簡単です。
| string | JavaScript の式、文を表す文字列です。 |
|---|
string が式だった場合はその評価結果を。文だった場合は undefined。
eval() は呼び出し元の権限で渡されたコードを実行する危険な関数です。悪意のある第三者に影響を受ける可能性のある文字列で eval() を実行すると、あなたのウェブページ/拡張機能の権限でユーザーのマシン上で悪意のあるコードを実行してしまう可能性があります。さらに重要なことに、サードパーティのコードは eval() が呼び出されたスコープを見ることができるので、類似の、Function では影響を受けない方法でも攻撃を受ける可能性があります。
D=eval("2 + 2"); //=[number]:4
D=eval(new String("2 + 2")); //=[object]:2 + 2
//0=[string]:2
//1=[string]:
//2=[string]:+
//3=[string]:
//4=[string]:2
DA=new String("2 + 2");
D=eval(DA.toString()); //=[number]:4
D=eval(String("2 + 2")); //=[number]:4
//文と見なされる:
D=eval("2+2; alert(10)");
//「10」が表示され、
//=[undefined]:undefined
//が、返される。
//eval() より良い方法:
D=Function("return 2 + 2")(); //=[number]:4