ホームページ  >  記事  >  ウェブフロントエンド  >  eval は es6 のメソッドですか?

eval は es6 のメソッドですか?

WBOY
WBOYオリジナル
2022-08-30 17:16:021689ブラウズ

eval は es6 のメソッドではありません。このメソッドは JavaScript にあり、JavaScript 文字列を計算し、その文字列をスクリプト コードとして実行するために使用されます。受信文字列が式の場合は、式が返されます。評価結果それ以外の場合は、unknown が返され、構文は「eval(string)」になります。

eval は es6 のメソッドですか?

このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。

eval は es6 のメソッドではありません

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>

出力結果:

eval は es6 のメソッドですか?

[関連する推奨事項:

JavaScript ビデオ チュートリアル Web フロントエンド ]

以上がeval は es6 のメソッドですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。