javascriptで文字列数値の比較。
文字列で比較すると、100が99より小さいのは何故か教えてください。
if ("100" < "99"){ console.log('wtf');}
※もちろん、numberにキャストすれば意図した動きになります。
※ここでは、文字列の比較について質問です。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
辞書的にみて、"99"の"9"より"100"の"1"のほうが先に来るからではないでしょうか?
投稿2015/08/06 04:47
総合スコア20649
0
皆様の回答と同じです。
"99"や"100"は文字列ですので、"0","1","2""9"の順番になり、"A","B""Z"そして"a","b"~"z"の順番です。
その他記号"$","%"などにも順番が有ります。
アスキーコードの順番です。「アスキーコード表」で検索すれば出てくると思います。
アスキーコードでは、"0"は30(16進数),"9"は39(16),"a"は61(16)です。
辞書でも
”あいいいい"と"う"の順番は"あいいいい"が先ですよね?
投稿2015/08/06 05:10
総合スコア1151
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Comparison_Operators
文字列は、Unicode の値を用い、標準の辞書に基づいて比較されます。
とあるように、文字列同士を比較演算子で比較する場合は辞書順で先に来る方が小さいとみなされます。
投稿2015/08/06 05:00
総合スコア594
0
Javascriptはよく知らないのですが、他の言語でも同じだと思うので。
先頭文字から1文字づつの比較になるので、"1"と"9"を比較していることになります。
1文字目が同じであれば、2文字目以降の比較になります。
投稿2015/08/06 04:53
総合スコア59
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/06 04:57
2015/08/06 05:02
2015/08/06 05:02
2015/08/06 05:04
2015/08/06 05:05
2015/08/06 05:06
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/06 04:55
2015/08/06 04:56
2015/08/06 05:07