• ベストアンサー

function内での定義

functionの中で変数に値を入れ、function外で使用したいのですがうまくできません。 例えば var ppc = null; function OpenDetail(){ ppc = "fggr"; } document.write("////"+ppc); という場合、出力は「////null」ですが期待している結果は「////fggr」です。 javascriptは上から順番に実行する、functionはどこかからあえて呼ばなくても実行される、ローカル変数を別の場所で使うにはグローバル変数の定義が必要、を踏まえてのソースなのですが、どこが間違っているのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

>functionはどこかからあえて呼ばなくても実行される 定義されるだけで、呼ばないと実行されません。 var ppc = null; function OpenDetail(){ ppc = "fggr"; } OpenDetail();//ここで呼んでみて下さい document.write("////"+ppc);

optional
質問者

お礼

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

その他の回答 (1)

回答No.2

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

optional
質問者

お礼

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

関連するQ&A