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()の使用は必要最小限にとどめることが推奨されます。
-
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
-
文字列を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