6

JSON.parse最新のブラウザではeval()、動的コードを評価および実行するために内部的に使用していますか?

Douglas Crockford の JSON ライブラリを調べてきたからです。parse() を使用する場合にも使用しますeval()が、実際の評価の前に前処理を行います。そのような:-

  1. コード内の Unicode 文字に対する壁。
  2. コードは悪意を示します。

JSON.parse をネイティブにサポートする最新のブラウザーは、これをネイティブに実行しますか、それとも他のプロトコルに従いますか?

4

2 に答える 2

-1

あなたがそれについて考えるなら、それは非常に面白いことです。

理由を理解するために、この類推が役立つかどうかを確認してください。あなたは上司と一緒に、あなたはその言語を話す国に旅行していますが、彼女は話していません。あなたは流暢なので、彼女のアシスタント (彼女のために仕事をする) と彼女の翻訳者 (彼女に意味を伝える) の 2 つの役割を果たします。

この 2 つの仕事は補完的な関係にあります。あなたの上司は、あなたが何かをするようにあなたに言うことができます-あなたが理解できる任意の言語(たとえば英語)で-だけでなく、看板や文書などの何かが彼女に何を言っているかを彼女に伝えるように頼むこともできます. 彼女はその両方を行うことさえできました。この別の言語で書かれた一連の指示を渡して、「これは私が信頼する人から私に与えられたものです。ここに書かれていることをすべて実行してください」と言うのです。

このアナロジーでは、上司に看板や書類を読むことは のようなものJSON.parseです。上司があなたに指示を出し、彼らの言うことはすべて実行するように言うのはeval.

JavaScript エンジンがevalの内部で使用されている場合JSON.parse、それは、上司がドキュメントの内容を尋ね、ドキュメントに書かれていることをすべて実行して説明することを選択するようなものです。ただ読むのではなく。

于 2013-06-10T14:33:58.100 に答える