evalの()アクション:
JSは、文字列パラメータコードと実行に解析され、実行結果を返します。
例えば:
評価は、(「2 + 3 」); // その動作を実行し、計算された値を返します。 evalの(" VAR年齢= 10 "); // 変数の年齢を宣言します
evalのスコープ
関数(){ 評価(" VAR X = 1。"); // 等価1 = XのVAR; にconsole.log(X); // 。出力1 } A(); にconsole.log(X); // エラーxが定義されていません。
コンテンツのすべての範囲の効果的な説明スコープ
例2:
関数(){ window.eval(" VAR X = 1。"); // = 1をwindow.xと同等に、グローバル変数を定義する にconsole.log(" X "); // 。出力1 } A(); console.log(X); // 出力1
このコードの悲劇?IE8でIE8とどのバージョンはサポートされていません。
ソリューション:
関数A(){ IF(window.execScript){ // サポートIE8およびバージョン以下 window.execScript(" VARのX = 1。" ); } 他 { // 従来のブラウザがサポート window.eval(「VARのXが= 。1 " ); } にconsole.log(X); } A(); にconsole.log(X)。
注意事項
あなたは(一度のjsの文に解析2回、一度実行)のeval、不安、巨大なパフォーマンスを使用しないでください。
他のアクション
JSONオブジェクトにJSON文字列は、例えば、ときにevalを使用することができます。
VaRの JSON = " {名: 'Mr.CAO'、年齢:30} " 。 VAR jsonObj =のeval(" (" + JSON " )" ); console.log(jsonObj)。