2012-06-02 28 views

Trả lời

38

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 
+0

Có. So sánh chuỗi được thực hiện chủ yếu theo thứ tự abc. – jpaugh

+0

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

2

'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.

+0

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

3

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 
2

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 
0

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ác vấn đề liên quan