2012/09/10

[JavaScript]JSONをevalするときの注意

おそらくさんざん他のところでもでてきていると思うのですが、JSONをJavaScriptを使ってevalを行なう場合、なぜか、

vae hoge = eval('(' + jsondata ')');
と書かなければいけませんでした。

これってなぜかなーっと思っていたら、なんとなくその答えになるようなエントリーがありました。

JavaScriptの文法定義(http://www.mozilla-japan.org/js/language/grammar14.html)を見てみるとこの謎が解ける。JavaScript1.5にはラベル文(LabeledStatement)というものがあって、さらにラベル文のラベル部分は"Identifier :"と定義されているので、文字列はここには書けない。

via:JavaScriptでJSONをeval
というわけで、ラベル文として解釈しているんだなーっと。

0 コメント:

コメントを投稿