Rumah >hujung hadapan web >tutorial js >Mengapa Rentetan JavaScript \'11\' dan \'3\' Dibandingkan sebagai Benar dalam Perbandingan Leksikografi?

Mengapa Rentetan JavaScript \'11\' dan \'3\' Dibandingkan sebagai Benar dalam Perbandingan Leksikografi?

Linda Hamilton
Linda Hamiltonasal
2024-10-18 12:36:03848semak imbas

Why Do JavaScript Strings

Perbandingan Leksikografi Rentetan

Perbandingan antara rentetan "11" dan "3" dalam coretan kod yang diberikan mencetuskan rasa ingin tahu kerana hasil yang tidak dijangka benar. Andaian remeh mungkin bahawa perbandingan adalah berdasarkan panjang rentetan, tetapi ini tidak berlaku. Sebaliknya, rentetan JavaScript dibandingkan secara leksikografi.

Perbandingan leksikografi beroperasi dengan membandingkan jujukan titik kod Unikod yang mewakili aksara dalam rentetan. Ia bermula dengan membandingkan aksara pertama setiap rentetan; jika aksara ini adalah sama, ia meneruskan untuk membandingkan aksara kedua, dan seterusnya. Perbandingan terhenti apabila aksara dengan titik kod berbeza ditemui atau apabila salah satu rentetan kehabisan aksara.

Dalam kes "11" dan "3", aksara pertama ialah '1' dan '3 '. Memandangkan '1' mempunyai titik kod Unikod yang lebih rendah daripada '3', "11" adalah kurang daripada "3" mengikut perbandingan leksikografi. Ini menerangkan hasil yang mengejutkan: rentetan yang lebih panjang dianggap kurang daripada rentetan yang lebih pendek kerana ia mengandungi aksara dengan titik kod yang lebih rendah.

Contoh:

'11' < '3' // true
'31' < '3' // false
'31' < '32' // true
'31' < '30' // false
'abc' < 'aaa' // false
'abc' < 'abd' // true

Untuk menukar rentetan secara eksplisit kepada nombor, gunakan operator tambah pertama ( ):

 +'11' < '3' // false

Atas ialah kandungan terperinci Mengapa Rentetan JavaScript '11' dan '3' Dibandingkan sebagai Benar dalam Perbandingan Leksikografi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn