連載目次へ 以下のJavaScriptコードが意図した動作をしないのは,なぜですか。(制限時間1分) <input type="button" value="「1」と表示" onClick="f()"> <script language="JavaScript"> function f() { var str = "{x:1}"; // JSONオブジェクトにする var obj = eval(str); // プロパティを表示 alert( obj.x ); } </script> 答え IEでもFirefoxでも,「undefined」と表示されてしまう。 もしもオブジェクトのプロパティが1個ではなく,複数個だったらどうなるか。 var str = "{x:1, y:2}"; これをeval()すると,undefinedではなく,実行エラーになる。 Firebugのコンソールには「in