JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列を関数に変換する方法【eval()メソッドの使い方】

JavaScriptで文字列を関数として扱うには、eval()メソッドを使用します。このメソッドは文字列を引数として受け取り、その内容をコードとして評価し、関数へと変換します。

構文

eval(string);

使用例

次の例では、文字列の中の「age」プロパティに関数が定義されています。まずJSON.parse()で文字列をオブジェクトに変換し、その後eval()を使ってageプロパティの文字列を実際の関数として評価・変換し、呼び出した結果を出力しています。

<html>
<body>
<script>
var string = '{"name":"Ram", "age":"function() {return 27;}", "city":"New jersey"}';
var fun = JSON.parse(string);
fun.age = eval("(" + fun.age + ")");
document.write(fun.name + " " + "of Age" + " " + fun.age() + " " + "from city" + " " + fun.city);
</script>
</body>
</html>

出力結果

Ram of Age 27 from city New jersey

注意点:eval()のセキュリティリスク

eval()は渡された文字列をそのままコードとして実行するため、信頼できない外部データに対して使用すると、意図しないコードの実行による深刻な脆弱性につながる恐れがあります。実運用ではJSON.parse()のような安全な手法を優先し、eval()の使用は必要最小限にとどめることが推奨されます。

  1. JavaScriptで10進数を16進数に変換する方法をわかりやすく解説

    JavaScriptでは、数値クラスが持つ toString メソッドを使うことで、10進数の数値を簡単に16進数の文字列へ変換できます。toString メソッドは基数(base)を引数として受け取るため、基数に「16」を指定すれば、その数値を16進数表記の文字列として取得できます。toStringメソッドで10進数から16進数へ変換する例console.log(Number(255).toString(16)) console.log(Number(17).toString(16))出力結果ff 11このように、255 は ff、17 は 11 という16進数の文字列に変換されます。par

  2. 文字列をJavaScriptオブジェクトに変換する方法【JSON.parse()の使い方】

    JavaScriptでJSON形式の文字列をオブジェクトに変換するには、JSON.parse()メソッドを使用します。このメソッドは、引数に渡された文字列を解析(パース)し、対応するJavaScriptオブジェクトを返します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Docum