次のコードがあります
console.log("I am");
var x = "console.log('Alive!')";
今、私はそれに割り当てられたコード文字列を実行するために使用したいだけですx
- たとえば x の値さえ知らないかもしれませんが、単にそれを実行したいだけです - これは可能ですか?
次のコードがあります
console.log("I am");
var x = "console.log('Alive!')";
今、私はそれに割り当てられたコード文字列を実行するために使用したいだけですx
- たとえば x の値さえ知らないかもしれませんが、単にそれを実行したいだけです - これは可能ですか?
eval()文字列を JavaScript コードに変換します。
eval("console.log('Alive! Woo!')");
あなたが探しているのはですeval()
。この関数に文字列を渡すことにより、文字列をJavaScriptコードとして評価し、文字列内のコードが返す戻り値を返します。
ただし、この機能を使用する場合は注意してください。安全に実行できるかどうかわからないコードを評価したくありません。たとえば、ユーザー生成コードを実行すると、作成しているものがすべて台無しになる可能性があります。これをWebサイトのJavaScriptで使用すると、おそらくクライアント側でのみ問題が発生するため、セキュリティ上の脅威にはならない可能性があります。たとえば、サーバー側でコードを評価する場合は、十分に注意する必要があります。
ここの他の投稿で示唆されているように、実行されるソースコードを制御している場合は、評価された文字列の代わりに関数を作成することをお勧めします。
あなたが探しているものは関数と呼ばれています:
function x() {
console.log('Alive!');
}
x
がすでにコードを含む文字列である場合は、eval(x)
それを実行するために使用できます。eval
しかし悪です。
var x = "console.log('Alive!')";
eval(x)