概要
eval()について、詳しく調べてみます。
eval()は1つの引数を渡します。
引数として文字列を渡し、それ以外の場合はそのままの値を返します。
引数が解釈できない場合はシンタックスエラー例外になります。
解釈できた場合は、引数を評価します。
実行例1
eval()を呼び出すとき、呼び出したコードの環境変数が使われます。
実際にeval()で呼び出されたコードの変数が使われるかどうか、
例えば、次のようなコードを書いてみます。
var x = "123"; console.log(eval("x"));
出力結果は
123
になり、eval()で「x」という変数を呼び出したことになります。
実行例2
eval()の引数内で変数定義や関数定義も可能です。
また、定義した変数に値を代入することもできます。
例えば、次のようなコードを書いてみます。
var y = "abc"; console.log(eval("y='d'"));
出力結果は
d
という結果になります。
出力結果を確認する為に、console.logを行っていますが、便宜上書いているだけです。
実行例3
eval()での関数定義を試してみます。
eval("function abc() { return 'z'; }"); console.log(abc());
出力結果は
z
という結果になります。