if ('11' < '3') alert('true');
Rõ ràng là không so sánh chúng theo chiều dài mà bằng cách mã hóa thay thế. Tuy nhiên, tôi không hiểu nó hoạt động ra sao. Tôi cần một số giải thích :-)Tại sao chuỗi "11" nhỏ hơn chuỗi "3"?
if ('11' < '3') alert('true');
Rõ ràng là không so sánh chúng theo chiều dài mà bằng cách mã hóa thay thế. Tuy nhiên, tôi không hiểu nó hoạt động ra sao. Tôi cần một số giải thích :-)Tại sao chuỗi "11" nhỏ hơn chuỗi "3"?
Chuỗi được so sánh ký tự theo ký tự cho đến khi chúng không bằng nhau hoặc không còn ký tự nào để so sánh. Ký tự đầu tiên của '11' nhỏ hơn ký tự đầu tiên của '3'.
> '11' < '3'
true
> '31' < '3'
false
> '31' < '32'
true
> '31' < '30'
false
Nếu chúng ta sử dụng chữ sau đó, kể từ b
là không ít hơn a
, abc
là không ít hơn aaa
, nhưng kể từ khi c
là ít hơn d
, abc
là ít hơn abd
.
> 'abc' < 'aaa'
false
> 'abc' < 'abd'
true
'1' < '3'
và vì ký tự đầu tiên là "ký tự quan trọng nhất" (không phải thuật ngữ này có ý nghĩa). Bất kỳ ký tự nào sau đây sẽ không được so sánh nữa.
Tôi đoán OP có thể không biết ASCII. Vì vậy, tôi tin rằng nó có thể hữu ích nếu một danh sách các ký tự được sắp xếp được bao gồm. Đây là: [ASCII] (http://en.wikipedia.org/wiki/ASCII). – Haozhun
Nó so sánh của từng nhân vật, sau đây sẽ false
:
if ('41' < '3') alert('true');
Kể từ 4
không phải là ít hơn 3
. Vì vậy, về cơ bản so sánh của bạn đã được đun sôi xuống đến mức này:
if ('1' < '3') alert('true'); // true
Theo mặc định, JavaScript sẽ so sánh hai chuỗi theo giá trị thứ tự của mỗi ký tự; giống như cách strcmp()
công trình trong C.
Để thực hiện công việc so sánh của bạn, bạn có thể đúc hai bên đối với một số nói với người phiên dịch ý định của bạn so sánh số:
Number('11') < '3' // false
+'11' < '3' // false, using + to coerce '11' to a numeric
'11' < Number('3') // false
'11' < +'3' // false
Trong nhiều ngôn ngữ lập trình Strings được so sánh là lexicographically. Bạn có thể kiểm tra Alphabetical order
Nó đã được coi là so sánh chuỗi. Vì vậy, 1 < 3 (ký tự đầu tiên của hai chuỗi) sau đó chuỗi 11 chuỗi tiền tố 3
Có. So sánh chuỗi được thực hiện chủ yếu theo thứ tự abc. – jpaugh
Chỉ cần lưu ý nhanh: chú ý đến chữ thường và chữ hoa. Uppercase đến trước khi hạ. Ví dụ: ''abc' <'Abd' // false' – viery365