if ('11' < '3') alert('true');
Jest oczywiste, że nie porównuje ich długość, ale kodowanie. Jednak nie rozumiem, jak to działa. Potrzebuję wyjaśnienia :-)Dlaczego ciąg "11" jest mniejszy niż ciąg "3"?
if ('11' < '3') alert('true');
Jest oczywiste, że nie porównuje ich długość, ale kodowanie. Jednak nie rozumiem, jak to działa. Potrzebuję wyjaśnienia :-)Dlaczego ciąg "11" jest mniejszy niż ciąg "3"?
Ciągi są porównywane znak po znaku, dopóki nie są równe lub nie ma żadnych znaków do porównania. Pierwszy znak "11" jest mniejszy niż pierwszy znak "3".
> '11' < '3'
true
> '31' < '3'
false
> '31' < '32'
true
> '31' < '30'
false
Jeśli używamy litery a od b
jest nie mniejsza niż a
, abc
jest nie mniejsza niż aaa
, ale ponieważ c
jest mniejsza niż d
, abc
jest mniejsza niż abd
.
> 'abc' < 'aaa'
false
> 'abc' < 'abd'
true
'1' < '3'
a ponieważ pierwszy znak to „najbardziej znaczącą postać” (nie, że termin ten ma jakiś sens). Następujące znaki nie będą już porównywane.
Zgaduję, że OP może nie znać ASCII. Dlatego uważam, że pomocne może być uwzględnienie posortowanej listy znaków. Oto ona: [ASCII] (http://en.wikipedia.org/wiki/ASCII). – Haozhun
Porównuje przez każdego znaku, co następuje będzie false
:
if ('41' < '3') alert('true');
Od 4
jest nie mniejsza niż 3
. Więc zasadniczo swoją porównanie sprowadzała się do tego:
if ('1' < '3') alert('true'); // true
Domyślnie, JavaScript będzie porównać dwa ciągi przez wartość porządkową każdego bohatera; podobnie jak strcmp()
pracuje w C
Aby kontynuować pracę porównania, można oddać po obu stronach do numeru powiedzieć interpreter swoje intencje porównaniu numerycznej:
Number('11') < '3' // false
+'11' < '3' // false, using + to coerce '11' to a numeric
'11' < Number('3') // false
'11' < +'3' // false
W wielu językach programowania Struny są porównywane jako lexicographically. Możesz sprawdzić Alphabetical order
Zostało to potraktowane jako porównanie ciągów. Więc 1 < 3 (pierwsze znaki dwóch ciągów), a następnie ciąg 11 poprzedza ciąg 3
Tak. Porównanie łańcuchów odbywa się głównie alfabetycznie. – jpaugh
Po prostu krótka uwaga: zwracaj uwagę na małe i duże litery. Uppercases występują przed małymi literami. Np .: ''abc' <'Abd' // false' – viery365