javascriptの学習で
var yourName=window.prompt("入力欄にお名前をお書きください。","ここに入力してください。")として、
そのままのときは〜〜という文、空のときやキャンセルボタンを押されたときは〜〜という文と指定して、
名前を入力してもらったときには
else{document.write("<p>ようこそ"+yourName+"さん!</p>")としたのですが、
これで名前を入力すると
ようこそfalseさん!と表示されてしまいます(>_<)
なぜでしょうか??
わかるかた教えてください!
No.1
- 回答日時:
すみませんが
> そのままのときは〜〜という文、空のときやキャンセルボタンを押されたときは〜〜という文と指定して、
> 名前を入力してもらったときには
という風に「自分が書いたと思っている処理内容」だけを書かれても、回答者にはあなたが実際にどう書いたかわからず適切な回答をすることができません。
あなたが実際に書いたコードをコピー&ペーストで補足願います。
No.2ベストアンサー
- 回答日時:
> "がなぜか抜けてしまって
というのがどう抜けたのかが分からないので少々自信がありませんが、
> }else if(yourName= || yourName==null){
が
}else if(yourName="" || yourName==null){
だとすると、こちら(Windows 7 + IE 11)で同一の現象を確認しました。
原因は == とすべきところを = としてしまったことです。
この結果、if 文の中の
yourName="" || yourName==null
は、あなたが想定したであろう「yourName が "" か null のいずれかか」の論理式の結果ではなく、「"" と 『yourName が null か』との論理和を yourName に代入する」の結果になります。
javaScript では "" も論理式では false とみなされますので、論理和の性質を考えるとこの式は「『yourName が null か』を yourName に代入する」という事になります。
したがって、問題の if 文は yourName に「yourName が null か」を代入し、その値によってその後の文の実行の是非を判断します。
参考 URL - いずれも MDN
演算子の優先順位
https://developer.mozilla.org/ja/docs/Web/JavaSc …
論理演算子
https://developer.mozilla.org/ja/docs/Web/JavaSc …
hitomura様
大変わかりやすい回答ありがとうございます!!
実際にyourName==""||yourName==nullと、してみたところしっかり入力した名前が表示されるようになりました!!
とてもすっきりしました!
参考URLもためになります!
ありがとうございます☆彡
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列にnullを代入すると、null...
-
ORA-01858: 数値を指定する箇所...
-
getStringの値がNULLの時の処理
-
BOOL値を逆にしたい
-
java 引数 戻り値のあるメソッド
-
Java配列でNullPointerExceptio...
-
C# ListBoxのインデックスの値...
-
逆コンパイルの見方について(...
-
Stringを返す getText()メソッ...
-
HashMapがおかしい
-
JSPで複数のSQL実行につ...
-
応用情報技術者試験の令和元年...
-
1~100までの数字を表示し、か...
-
ループ処理の際、最後だけ","を...
-
Javaで改行などが出来ないのです。
-
ダブルクォーテーションのrepla...
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
n番目に大きな値を探索する
-
java キーボード入力された値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
配列にnullを代入すると、null...
-
Java配列でNullPointerExceptio...
-
BOOL値を逆にしたい
-
getStringの値がNULLの時の処理
-
C# ListBoxのインデックスの値...
-
eclipseでoracle接続時のエラー...
-
gas カレンダー祭日設定でエラー
-
Javascript エラーメッセージが...
-
java 引数 戻り値のあるメソッド
-
C#でラジオボタンとコンボボッ...
-
MySQLのテーブル名を変数に置い...
-
jsp/Servletの動的に増えるフォ...
-
例外でBeanUtils.populateが、...
-
Stringを返す getText()メソッ...
-
JSPで複数のSQL実行につ...
-
逆コンパイルの見方について(...
-
if文を通らない
-
この世で連日正規表現について...
-
逆コンパイルの見方について(...
おすすめ情報
そうですよね(>_<)
情報不足ですみませんでした(>_<)
お願いします!
</head>
<body>
<script type=text/javascript>
var yourName=window.prompt(入力欄にお名前をお書きください。,ここに入力してください。);
if(yourName==ここに入力してください。){
document.write(<p>お名前の入力をお忘れになったようですね。</p>);
}else if(yourName= || yourName==null){
document.write(<p>お名前を入力していただきたかったです。</p>);
}else{
document.write("<p>ようこそ"+yourName+"さん!</p>");
}
</script>
</body>
</html>
"がなぜか抜けてしまって文字オーバーになってしまうので一部しか書き足せませんでした(>_<)