28

次のコードがあります

console.log("I am");

var x = "console.log('Alive!')";

今、私はそれに割り当てられたコード文字列を実行するために使用したいだけですx- たとえば x の値さえ知らないかもしれませんが、単にそれを実行したいだけです - これは可能ですか?

4

6 に答える 6

34

eval()文字列を JavaScript コードに変換します。

eval("console.log('Alive! Woo!')");
于 2014-01-20T20:25:59.437 に答える
14

あなたが探しているのはですeval()。この関数に文字列を渡すことにより、文字列をJavaScriptコードとして評価し、文字列内のコードが返す戻り値を返します。

ただし、この機能を使用する場合は注意してください。安全に実行できるかどうかわからないコードを評価したくありません。たとえば、ユーザー生成コードを実行すると、作成しているものがすべて台無しになる可能性があります。これをWebサイトのJavaScriptで使用すると、おそらくクライアント側でのみ問題が発生するため、セキュリティ上の脅威にはならない可能性があります。たとえば、サーバー側でコードを評価する場合は、十分に注意する必要があります。

ここの他の投稿で示唆されているように、実行されるソースコードを制御している場合は、評価された文字列の代わりに関数を作成することをお勧めします。

于 2012-12-23T20:17:37.733 に答える
5

あなたが探しているものは関数と呼ばれています:

function x() {
    console.log('Alive!');
}

xがすでにコードを含む文字列である場合は、eval(x)それを実行するために使用できます。evalしかし悪です。

于 2012-12-23T20:16:00.913 に答える
4
var x = "console.log('Alive!')";
eval(x)
于 2012-12-23T20:18:06.457 に答える