サーチ…
前書き
JavaScriptでは、 eval
関数は文字列をJavaScriptコードのように評価します。戻り値は評価された文字列の結果です。例えば、 eval('2 + 2')
は4
返します。
eval
はグローバルスコープで利用可能です。間接的に呼び出されない限り、評価の語彙範囲はローカルスコープです(例: var geval = eval; geval(s);
)。
eval
の使用は強くお勧めします。詳細については、「備考」を参照してください。
構文
- eval(文字列);
パラメーター
パラメータ | 詳細 |
---|---|
文字列 | 評価されるべきJavaScript。 |
備考
eval
の使用は強く推奨されません。多くのシナリオでは、セキュリティ上の脆弱性が存在します。
eval()は危険な関数で、呼び出し元の権限で渡されたコードを実行します。 eval()を悪意のある当事者の影響を受ける可能性のある文字列で実行すると、Webページ/拡張機能の権限で悪質なコードが実行される可能性があります。さらに重要な点として、サードパーティのコードは、eval()が呼び出されたスコープを見ることができ、同様の機能が影響を受けない方法で攻撃される可能性があります。
さらに:
前書き
内部からJavaScriptを実行することはできますが、これはセキュリティ上の脆弱性により強く推奨されません (詳細は「備考」を参照)。
JavaScript内からJavaScriptを実行するには、以下の関数を使用します:
eval("var a = 'Hello, World!'");
評価と数学
以下のようなコードを使用して、変数をeval()
関数で何かに設定することができます:
var x = 10;
var y = 20;
var a = eval("x * y") + "<br>";
var b = eval("2 + 2") + "<br>";
var c = eval("x + 17") + "<br>";
var res = a + b + c;
変数res
格納された結果は次のようになります。
200
4
27
eval
の使用は強くお勧めします。詳細については、「備考」を参照してください。
JavaScript文の文字列を評価する
var x = 5;
var str = "if (x == 5) {console.log('z is 42'); z = 42;} else z = 0; ";
console.log("z is ", eval(str));
eval
の使用は強くお勧めします。詳細については、「備考」を参照してください。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow