電子書籍の厳選無料作品が豊富!

functionの中で変数に値を入れ、function外で使用したいのですがうまくできません。

例えば

var ppc = null;
function OpenDetail(){
ppc = "fggr";
}
document.write("////"+ppc);

という場合、出力は「////null」ですが期待している結果は「////fggr」です。
javascriptは上から順番に実行する、functionはどこかからあえて呼ばなくても実行される、ローカル変数を別の場所で使うにはグローバル変数の定義が必要、を踏まえてのソースなのですが、どこが間違っているのか教えてください。

A 回答 (2件)

>functionはどこかからあえて呼ばなくても実行される


定義されるだけで、呼ばないと実行されません。

var ppc = null;
function OpenDetail(){
ppc = "fggr";
}
OpenDetail();//ここで呼んでみて下さい
document.write("////"+ppc);
    • good
    • 0
この回答へのお礼

なるほど、誤解していました。
コメントアウトでわかりやすい解説ありがとうございました。

お礼日時:2006/12/17 17:20

関数を実装しただけでは、変数ppcの値は"fggr"にはなりません。


ppc="fggr"は関数の中で宣言されているので、関数を呼ばなければ
ppc=="fggr"にはなりません。従って、document.write("////"+ppc);
を実行するまえに関数OpenDetail()を呼び出す必要があります。
また、関数の外に、var ppc = null;がなくても、関数の中で
変数にvarを付けずに宣言すると、その変数は、グローバル変数に
なります。
    • good
    • 0
この回答へのお礼

丁寧な解説ありがとうございます。
他の閲覧者の手引きにもなると思います。
内容的には前の方の踏襲になりますので、次点ということでご容赦ください。

お礼日時:2006/12/17 17:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!