Javascript_javascript スキルでの Eval 関数の使用

WBOY
リリース: 2016-05-16 18:31:26
オリジナル
1049 人が閲覧しました

[eval() 関数]
JavaScript にはプログラミングを容易にするための多くのトリックがあります。
そのうちの 1 つは eval() 関数で、文字列を JavaScript 式として実行できます。
小さな例:

コードをコピー コードは次のとおりです:

var the_unevaled_answer = " 2 3";
var the_evaled_answer = eval("2 3");
alert("未評価の回答は " the_unevaled_answer "、評価済みの回答は " the_evaled_answer" です);
この eval プログラムを実行すると、文字列「2 3」が実際に JavaScript で実行されることがわかります。
つまり、the_evaled_answer の値を eval("2 3") に設定すると、JavaScript はそれを理解し、2 と 3 の合計を the_evaled_answer に返します。
これは少しばかげているように思えるかもしれませんが、実際には非常に興味深いことができます。たとえば、eval を使用すると、ユーザー入力に基づいて関数を直接作成できます。
これにより、時間やユーザー入力に基づいてプログラム自体を変更することができ、1 つの例から推論を引き出すことで、驚くべき結果を得ることができます。
実際には eval が使用されることはほとんどありませんが、インデックス付けが難しいオブジェクトを取得するために eval を使用している人を見たことがあるかもしれません。
ドキュメント オブジェクト モデル (DOM) の問題の 1 つは、要求したオブジェクトを取得するのが面倒な場合があることです。
たとえば、どの画像を変換するかをユーザーに尋ねる関数を次に示します。 どの画像を変換するには、次の関数を使用できます:


function swapOne()
{
var the_image =prompt("オウムまたはチーズを変更",""); var the_image_object;
if (the_image == "オウム")
{
the_image_object = window.document.parrot;
else
{
the_image_object = window.document .cheese;
}
the_image_object.src = "ant.gif";
}


と次の画像タグ:
[img src="/stuff3a/] parrot.gif" name ="parrot"]
[img src="/stuff3a/cheese.gif" name="cheese"]
次のような数行に注意してください:
the_image_object = window.document .parrot;
画像オブジェクトを変数に代入します。少し奇妙に見えますが、文法的には正しいです。
しかし、2 枚ではなく 100 枚の画像がある場合はどうなるでしょうか?次のようにできれば、if-then-else ステートメントをたくさん書く必要があります:




Copy code
Code As function swapTwo() {
var the_image =prompt("オウムまたはチーズを変更","");
window.document.the_image.src = " ant.gif";
}


残念ながら、JavaScript は予想どおり、"cheese" や "parrot" ではなく the_image という名前の画像を検索します
そのため、エラー メッセージが表示されます: 「the_image という名前のオブジェクトは聞いたことがありません。」
幸いなことに、eval は必要なオブジェクトを取得するのに役立ちます。




コードをコピーvar the_image = プロンプト("オウムまたはチーズを変更します","");
var the_image_name = "window.document." the_image;
var the_image_object = eval(the_image_name); "ant.gif";
}


ユーザーがプロンプト ボックスに「parrot」と入力すると、2 行目に文字列 window.document.parrot が作成されます。次に、eval を含む 3 行目の
行は、「オブジェクト window.document をください」を意味します。 .parrot" - つまり、必要な画像オブジェクトです。画像オブジェクトを取得したら、その src 属性を ant.gif に設定します。少し怖いですか?必要なし。これは実際に非常に便利で、多くの人が使用しています。
JavaScript では Eval 関数がよく使われます。
この関数は一部の文字列を非常に強力な関数に変えることができます。
この関数は、通常の文字列を特定のオブジェクトに変換する必要がある場合に使用します。文字列パラメータの場合に使用されます。文字列が式の場合、eval はその式を評価します。引数が 1 つ以上の JavaScript ステートメントを表す場合、eval はそれらのステートメントを実行します。 eval 関数を使用すると、日付を形式 (常に文字列) から数値式または数値に変換できます。
==============================
Eval 関数
関数: 最初に Javascript コードを説明し、
使用法: Eval(codeString)
codeString は、eval 後に Javascript エンジンを使用してコンパイルされる Javascript ステートメントを含む文字列です。
注:
例: eval(id "_icon.src="/imgs/collapse_up.gif'");
id は以前に設定されたパラメータで、二重引用符内の文字列は




コンパイルする必要があるコードをコピーします
コードは次のとおりです: function tophide(id) //idメニュー {
if (top.topframeset.rows == "31,*")
{
top.topframeset.rows = "86,*";
eval(id "; _icon .src="/imgs/collapse_up.gif'");
eval(id "_icon.alt='頭を折りたたむ'");
head.style.display = "ブロック"
}
else
{
top.topframeset.rows = "31,*";
eval(id "_icon.src="/imgs/collapse_down.gif'");
eval( id "_icon.alt='Expand The Head'");
head.style.display = "none"
}
}


詳細については、を参照してください。 :

javascript eval() の使用法
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!