eval関数
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【eval 関数の使い方】
グローバル関数のひとつである eval 関数は、引数に文字列として指定した JavaScript のコードを実行します。
グローバル関数のひとつである eval 関数は、引数に文字列として指定した JavaScript のコードを実行します。
・書式
eval(実行するコード)引数には文字列として式や文を記述します。 eval 関数は最後に評価した式の値を戻り値として返す
・サンプル
let str = 'x * y + 10';
let x = 8;
let y = 5;
let z = eval(str);
console.log(z);
>> 50
eval 関数が実行されると、引数に指定した文字列で表された式が評価されます。評価された結果は変数 z に代入する。
・サンプル
let str = 'z = x * y + 10;console.log(z)';
let x = 8;
let y = 5;
let z;
eval(str);
>> 50
eval 関数が実行されると、引数に指定した文字列で表されたコードが実行されます。変数 z に演算を行った結果が代入され、そのあとでコンソールに対して変数 z の値が出力する。
eval 関数は現在あまり使われなくなっていますが、過去には文字列で表された JSON のテキストをオブジェクトとして変換する場合に使用されていたようです。
let json = "{'name':'Yamada', 'old':'28'}";
let obj = eval('(' + json + ')');
eval(obj);
>> 50
【eval関数を使用するときの注意点】
eval 関数は引数に指定した文字列で表されたコードを実行できる関数のため、他のユーザーが入力した値を文字列として受け取り eval 関数に渡すような処理を記述するのは大変危険です。他のユーザーが入力した任意のコードを実行できてしまいます。
他にも実行速度が遅いといったデメリットもあり、また現在は eval 関数の代替手段も用意されているケースがあるため eval 関数はあまり使用されることはないようです。