Webアプリケーションでjqueryを使用しています。そこでは、以下のevalメソッドを使用します。
var json = eval('(' + data + ')');
グーグルした後、上記で使用したevalメソッドがjsonデータをjavascriptオブジェクトに変換していることがわかりました。しかし、その構文はどういう意味ですか?('('')')括弧で囲む必要がある理由。理解を助けてください。
Webアプリケーションでjqueryを使用しています。そこでは、以下のevalメソッドを使用します。
var json = eval('(' + data + ')');
グーグルした後、上記で使用したevalメソッドがjsonデータをjavascriptオブジェクトに変換していることがわかりました。しかし、その構文はどういう意味ですか?('('')')括弧で囲む必要がある理由。理解を助けてください。
eval
jsonの解析には使用しないでください。jQueryを使用しているので、を使用します$.parseJSON(data)
。データに含まれている場合はどうなりますwindow.close()
か?
括弧内のWRTは、ダグラス・クロックフォードのjson2.jsでそれらを説明するコメントを見ることができます。
// In the third stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity.
()
データを囲むために使用するのは{}
、ブロックとして解析されないようにするためです。
var json = eval('{}'); // the result is undefined
var json = eval('({})'); // the result is the empty object.
var json = eval('{"a": 1}'); // syntax error
var json = eval('({"a": 1})'); // the result is object: {a: 1}
ただし、jsonデータの解析には使用しないでください。 eval
var json = JSON.parse(data);
代わりに、またはいくつかのライブラリ関数を使用してください。