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