eval

JavaScriptを書いていて当たり前な事がぶっ飛んでいたので改めて整理。
evalでサーバーから受け取った文字列等々を評価させる場合、評価対象の文字列はJavaScriptの式で無ければならない。
なので、次の様に書くとエラーになる。

rcvstr = "{'foo':100, 'bar':200}";
ev = eval(rcvstr);

上を実行すると、”SyntaxError: invalid label”となる。
一方、

rcvstr = "({'foo':100, 'bar':200})";
ev = eval(rcvstr);

上との違いは()でくくった文字列にしたこと。
この様にして実行すると、

Object foo=100 bar=200

と正常に評価される。()でくくった事によって、「式」になったから。という風に解釈したのだが、これで良いのだろうか。。。
そもそも、firebugとかのコンソールで試してみたところ、

>>> {"a":100}
SyntaxError: invalid label

となって、

>>> ({"a":100})
Object a=100

と、正常に評価されるので。

うむ、体育の日に屋内でプログラムを朝から書いているのはいいことなのだろうか。

(Visited 3 times, 1 visits today)

「eval」への2件のフィードバック

  1. 私も映画観に行きたいのですが、HD録画したものがいっぱいあり過ぎて、それを見るので精一杯。
    最近は"24"にはまってる私・・・お笑い番組に出てたジャックバウアーの影響で、時々、笑う所ではない所で笑ってしまう羽目になってます。
    (´▽`*)アハハ

  2. "24"をまだ一度も見たことなかったりします(笑)
    自分も自宅のHDDレコーダーにたくさん番組録ってるけど、まだ見たことないのがあったりします。。。

コメントを残す

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