evalと構文エラー

AJAXでは、以下のようにサーバーから返されたJSONをevalで元に戻すみたいな事を良くやると思う。

var result = eval("(" + responseText + ")");

サーバー側で何らかのエラーが発生して、responseTextにエラーメッセージが書かれてたりすると以下のようなエラーが発生する。

エラー: 構文エラーです。

最初は「構文的には何もおかしくないんだけどなぁ…」と結構悩んだけど、そこに書かれているJavaScriptの構文ではなくて、evalしている文字列がJavaScriptの構文じゃないって事だって分かった時は少し感動。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です