- ベストアンサー
javascript 初心者です
javascript 初心者です 設定したグローバル変数を引数に指定したいのですが、うまくいきません。 下記のスクリプトのように書いてみたのですが、○が返ってきてしまいます。 どうすればうまくいくでしょうか?よろしくお願いします。 <html> <head> <script type="text/javascript"> <!-- i = false; function myFunc(hensu){ if(hensu){ alert("○"); } else{ alert("×"); } } --> </script> </head> <body> <p onclick="myFunc('i')">[btn]</p> </body> </html>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答#1の方が回答されている通り、 <p onclick="myFunc('i')">[btn]</p> で関数myFunc()の引数に変数iではなく、文字列'i'を渡しているからです。 ダブルクォーテーションやシングルクォーテーションで囲ったものは文字列になります。 正しくは、 <p onclick="myFunc(i)">[btn]</p> と書きます。 なお、 <p onclick="myFunc('i')">[btn]</p> のように関数myFunc()の引数に文字列を渡した場合、関数myFunc()内のif(hensu)は「変数hensuが定義されている(何らかの値を持っている)か」を判定してしまい、この場合、変数hensuは文字列'i'という値を持っているためtrueを返してしまいます。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
変数 i じゃなくて、文字列 'i' を渡しているからです。 var i=false; alert("i"); alert(i);
お礼
なるほど。簡単なことだったんですね。 大変助かりました。ありがとうございます。
お礼
ご丁寧な回答有り難うございます。 プログラミングに慣れていないので、 その辺りのことでつまずくことが多いみたいです。 とても参考になります。助かりました。