- ベストアンサー
JavaScriptのif文の処理に関する質問
- JavaScriptのサンプルコードでif文の処理に関する質問があります。フラグの管理のために初期値に0をセットし、条件分岐を行っていますが、if文を抜けた後にどの処理に進むのか分かりません。
- 質問のコードでは、myFlgが0の場合に「こんにちは」と表示する処理を行い、その後にmyFlgに1を代入しています。しかし、if文を抜けた後にどの処理に進むのかが不明です。
- この質問では、if文を抜けた後にどの処理に進むかに関する疑問があります。初歩的な質問ですが、宜しくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 このソースはそもそも間違えていませんか? (全角スペース入ってます) <script language="JavaScript"> <!-- myFlg = 0; function myFunc(){ if(myFlg == 0){ document.myFormMeS.value = "こんにちは"; } myflg = 1; else{ document.myFormMeS.value = ""; myFlg == 0; } } //--> </script> 1. myflg = 1;の位置がおかしいです。 2. myflgという変数は無くmyFlg = 1;のはずです。 3. myFlg == 0;ではなくmyFlg = 0;でフラグの初期化です。 4. document.myFormMeS.valueではなくdocument.myform.myFormMeS.valueです。 これを踏まえて直すと <script language="JavaScript"> <!-- myFlg = 0; function myFunc(){ if(myFlg == 0){ document.myform.myFormMeS.value = "こんにちは"; myFlg = 1; } else{ document.myform.myFormMeS.value = ""; myFlg = 0; } } //--> </script> になります。 これで動きを見ればきちんと追えると思います。 myFlg == 0の判定でフォームにこんにちはをセットしてmyFlg=1とフラグを立てる。 500ミリ秒後に再度myFuncが呼ばれた際にはmyFlg == 0の判定は偽(false)となるためフォームに空白をセットしてmyFlg=0でフラグを初期化。 以降繰り返しによりフォームの内容が点滅しているように見える。
お礼
理解できました! myFlg = 1;の位置がおかしかったですね。 とても分かりやすい説明ありがとうございます。