JavaScript eval()関数定義及び使用方法詳細


定義と用法
eval()関数は、ある文字列を計算し、JavaScriptコードを実行します。
構文
eval(string)
戻り値
stringを計算して得られた値(あれば)。
説明
この方法は元の文字列だけをパラメータとして受け入れ,もしstringパラメータが元の文字列でないなら,この方法は何の変化もなしに戻るであろう。したがって、eval()関数のためにStringオブジェクトを渡すのはやめてください。
eval属性を上書きしようとした場合、またはeval()方法を別の属性に付与し、この属性を通じて呼び出した場合、ECMAScript実装はEvarr異常をスローすることができます。
投げ出す
パラメータに正当な表現とステートメントがない場合は、SyntxErr異常をスローします。
eval()を不正に呼び出したら、Evarr異常をスローします。
eval()に渡されたJavascriptコードに異常が発生した場合、evalはこの異常をコーディネーターに伝達します。
例を引く
以下のコードは、"alert('Hello world')文字列をパラメータとして、javaSprintコードに変換して実行します。ブラウザポップアッププロンプトボックス出力'Hello world'

<script type="text/javascript">
  var a = "alert('Hello world')"
  eval(a)
</script>
eval()関数は非常に強いです。JAvaScriptというダイナミックな言語の長所をある程度表していると思います。
この関数を使用して、開発者は、ソースコードのソースコードを変更しないで、機能を追加したり、機能を変更したり、プログラムをより柔軟にすることができます。
例えば、ダイナミカルテーブルのシステムを開発しています。バックグラウンドプログラムは表のすべてのフィールドとデータをフロントエンドに渡して、フロントエンドjavaScriptコードがデータを受信した後、フィールドによって自動的にテーブルを生成します。しかし、私は第三者(layui)jsフレームを使っています。枠の中で表をレンダリングするコードは固定されていなければなりません。ダイナミックな生成ニーズに合わないです。この時、eval関数を使うことができます。
次に簡単にラユイフレームの表部分の使用説明を見ます。

表の部分はjavaScriptコードの中で固定して対応して書き、指定されたデータインターフェースのデータを受け取ってから表を作成する必要があります。
必要なテーブルのフィールドが異なる場合は、列の数が異なります。eval()関数を使ってコードをつなぎ合わせて実現しました。大まかに考えてみると、ajaxはヘッダに関するデータを要求し、javaScriptコードはこれらのデータに基づいて自動的にフレームの要求に合致するコードステートメントを生成し、eval()関数に伝達して直接呼び出せばいいということです。非常に柔軟で便利です。
例えば以下の疑似コード

<script>
  var code1 = "layui.use('table', function(){var table = layui.table;table.render({elem: '#demo',height: 312,url: '/demo/table/user/',page: true,cols: [[{"
  // ...                     ,      code2
  var code2 = "field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'},{field: 'username', title: '   ', width:80},{field: 'sex', title: '  ', width:80, sort: true},{field: 'city', title: '  ', width:80},{field: 'sign', title: '  ', width: 80},{field: 'experience', title: '  ', width: 80, sort: true},{field: 'score', title: '  ', width: 80, sort: true},{field: 'classify', title: '  ', width: 80},{field: 'wealth', title: '  ', width: 135, sort: false"
  var code3 = "}]]});});"
  var code = code1 + code2 + code3
  eval(code)
</script>
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。