質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

677閲覧

javascriptなのに数値に変換してくれない

hisayan

総合スコア60

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/07/07 04:47

下記の疑問です。
1回目はa=5、b=5を代入
2回目はa=5、b=”5”を代入
2回目はa=5、b=5を代入
して結果を見ると、true false false となりました。
Javascriptは「数値と文字列を比較するときに、文字列は数値に変換される」という説明を見たのですが、その原則からいくと、この3つの場合すべてtrueになるような気がしてならないのです。
なぜなのか説明していただけるとありがたいです。

javascript

1<html> 2<body> 3<script> 4let a = prompt("数字を入力") 5let b = prompt("数字を入力") 6if(a=b){ 7document.write(true); 8} 9else{ 10document.write(false); 11} 12</script> 13</body> 14</html> 15

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー


比較に == を使ってください。 = は条件分を書く場所であっても代入を意味します。


promptは常にユーザーから文字列を取得する関数です。
"5"とpromptで入力した場合は "5" という文字列を取得します。
== を使って比較したとしても"5"5 は違う文字列なのでfalseとなります。

投稿2019/07/07 05:03

編集2019/07/07 05:07
devneko64bit

総合スコア164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/07/07 07:26

"5"==5 は true ですよ。("5"===5 なら false )
devneko64bit

2019/07/07 07:33

"5" == 5 ならtrueですが、私が指摘しているのは実質 '"5"' == '5' となっているということです。
kei344

2019/07/07 07:34

失礼しました、誤読しました。
hisayan

2019/07/07 08:09

ありがとうございました。
guest

0

お示しのコードそのままではその結果にならないのでたぶん「a=b」は「a==b」の書き間違いですかね。
質問には動いたコードをそのままコピー&ペーストすることを強くおすすめします。

「"5"」は先を越されたので略。

「5」については、全角文字など各国の数字(他に「۵」「௫」など)を数として扱えるかは言語や関数・演算子によって様々です。
JavaScriptの等値演算子では数字として認識しないんですね、というだけの話です。

投稿2019/07/07 05:33

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hisayan

2019/07/07 08:09

おっしゃる通りa==bでした。ありがとうございました。
guest

0

a=bは代入文です。
演算子

投稿2019/07/07 05:02

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hisayan

2019/07/07 08:06

その通りでした。a==bでした。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問