WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:直接の変数を利用しない書き出し

femto [WriteDate : Wed Jun 27 22:29:03 2001]

JavaScriptについてお聞きしたいのですが、

var test  = "test1";
var test1 = "111222";

となっている状態で「test1」を利用しないで、testだけを用いて、
test1の内容111222をdocument.writeなどで書き出すことは可能でしょうか?
よろしくお願いします。


おーなーしぇふ [WriteDate : Thu Jun 28 00:40:11 2001]

こういうことでしょうか?

var test  = "test1";
var test1 = "111222";
document.write( test, "<BR>" );    /* 結果は"test1" */
document.write( eval( test ), "<BR>" );    /* 結果は"111222" */

var t1 = eval( test );
document.write( t1, "<BR>" );    /* 結果は"111222" */

勘違いでしたら、すみませんが(^^;)


femto [WriteDate : Thu Jun 28 11:01:08 2001]

ばっちりうまくいきました。
ありがとうございました。


!!! [WriteDate : Mon Jul 2 09:50:22 2001]

以下、イマイチ、わかりません。

>var test  = "test1";
>var test1 = "111222";
>document.write( test, "<BR>" );    /* 結果は"test1" */
>document.write( eval( test ), "<BR>" );    /* 結果は"111222" */

普通、evalは、文字列を数式として演算するものと認識していましたが...。

詳しい説明、または、解説サイトなどありましたら教えてください。


ひよこ [MAIL] [URL] [WriteDate : Mon Jul 2 11:49:37 2001]

> 普通、evalは、文字列を数式として演算するものと認識していましたが...。

「数式として演算」というより「文字列を式と見なし評価して変換」の方がしっくりくるかな?
ですから、eval(str)は文字列strが数値や算式だったり、変数だったり、オブジェクトだったりと
色んなパターンの場合もそれを評価して変換してくれます。


おーなーしぇふ [WriteDate : Mon Jul 2 18:25:29 2001]

ひよこさんの説明通りだと思うのですが、その他の参考情報として:

私の手元にある書籍でも「文字列を数式として演算」という説明がありますが、例えば、とほほさんのページでは「JavaScript の構文と解釈して実行し、その結果を返します」とあります。
http://tohoho.wakusei.ne.jp/js/builtin.htm#doEval


他にも例を挙げておきますので、参考にしてみて下さい。

-----------------------------------------------------------
//例1)document.f1.text.value の値を"test"にする処理
//※こういう使い方が一般的かと思います。

var fname = "f1";
//document.fname.text.value = "test";    //間違い

eval( 'document.' + fname + '.text.value = "test"' );    //OK

var str = 'document.' + fname + '.text.value = "test"';
eval( str );    //同じ結果

-----------------------------------------------------------
//例2)似ているようで結果が異なる……?
var test  = "test1";
var word = "test";

var str = "alert( word )";
var str1 = "alert( 'word' )";

var str2 = "alert( " + word + " )";
var str3 = "alert( '" + word + "' )";

eval( str );    /* 結果は"test" */
eval( str1 );    /* 結果は"word" */
eval( str2 );    /* 結果は"test1" */
eval( str3 );    /* 結果は"test" */


!!! [WriteDate : Fri Jul 6 13:20:39 2001]

よくわかりました!
返信がおくれてゴメン!

おーなーしぇふさん、ひよこさん、ありがとうございました。
これからも、ご指導よろしくお願い致します!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World