eval は es6 のメソッドではありません。このメソッドは JavaScript にあり、JavaScript 文字列を計算し、その文字列をスクリプト コードとして実行するために使用されます。受信文字列が式の場合は、式が返されます。評価結果それ以外の場合は、unknown が返され、構文は「eval(string)」になります。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
eval() 関数は JavaScript 文字列を計算し、スクリプト コードとして実行します。
パラメータが式の場合、eval() 関数はその式を実行します。引数が Javascript ステートメントの場合、eval() は Javascript ステートメントを実行します。
eval() 関数は、受信文字列を JavaScript コードとして実行します。受信文字列が式の場合は式の評価結果を返し、それ以外の場合は未定義を返します。
説明
eval() に渡されたパラメータが文字列でない場合、パラメータは直接返されます。
eval() が非厳密モードで直接呼び出される場合、var を使用して宣言された変数と function を使用して宣言された関数は現在の字句スコープを変更し、let と const を使用して宣言された変数は次のようになります。現在の字句スコープは変更されませんが、現在の字句スコープ内に新しい字句スコープが作成されます。
eval() が非厳密モードで間接的に参照される場合、グローバル環境で直接実行されます。var を使用して宣言された変数と、function を使用して宣言された関数は、グローバル字句スコープを変更します。 let および const を使用して宣言された変数は、グローバル字句スコープを変更しませんが、グローバル環境に新しい字句スコープを作成します。
eval() が厳密モードで直接呼び出される場合、現時点で新しい独立した字句スコープが作成されます。
eval() が厳密モードで間接的に参照される場合 (eval() 内の文字列で厳密モードがオンになっている場合のみ、文字列は厳密モードで実行されます)、グローバル環境は、新しい独立した字句スコープを作成します。
window.eval() の使用は、eval() への間接参照と同等です。
#eval() で実行されるコードは、JS インタープリター (Interpreter) を呼び出して解釈して実行することしかできず、ジャストインタイム コンパイラー (JIT コンパイラー) によって最適化することはできません。 eval() で実行されるコード このコードにより、生成されたマシン コード内で JS エンジンが変数の検索と割り当てを実行し、パフォーマンスの問題が発生する可能性があります。
#eval() を不適切に使用すると、内部で実行される文字列が悪意のある変更に対して脆弱になり、セキュリティ上の問題 (XSS 攻撃など) が発生する可能性があります。
eval() を使用すると、コード縮小ツールの動作が妨げられます。コード圧縮ツールは通常、コード サイズを削減するために、ローカル変数名を短い変数名 (a や b など) に変更します。 eval() を使用すると、eval() によって外部ローカル変数にアクセスされる可能性があるため、コード圧縮ツールは eval() によってアクセスされる可能性のあるローカル変数名を圧縮せず、コードの圧縮率が低下します。
#構文
eval(string)
例は次のとおりです:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>123</title> </head> <body> <script> eval("x=10;y=20;document.write(x*y)"); document.write("<br>" + eval("2+2")); document.write("<br>" + eval(x+17)); </script> </body> </html>
JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がeval は es6 のメソッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。