Rumah > hujung hadapan web > tutorial js > Mengapa Adakah '2' > '10' dalam Javascript?

Mengapa Adakah '2' > '10' dalam Javascript?

Susan Sarandon
Lepaskan: 2024-11-19 15:24:02
asal
629 orang telah melayarinya

Why Does "10" dalam Javascript? " /> "10" dalam Javascript? " />

Javascript String/Integer Comparison Quandary: Mengapa "2" > "10"?

Pengaturcaraan Javascript mempunyai kelainan yang unik dengan perbandingan rentetan dan integer. Walaupun seseorang mungkin menganggap bahawa rentetan berangka dianggap sebagai integer, ini tidak selalu berlaku, yang membawa kepada hasil yang tidak dijangka.

Pertimbangkan kod yang membingungkan berikut:

console.log("2" > "10");
Salin selepas log masuk

Mengejutkan ramai orang , kod ini dinilai kepada benar. Mengapakah "2" lebih besar daripada "10"?

Isu asas terletak pada perlakuan semula jadi Javascript terhadap rentetan dan integer Apabila membandingkan dua rentetan, Javascript melakukan perbandingan leksikografik titik kod Unicode mereka Dalam kes ini, titik kod ASCII untuk "2" (50) adalah kurang daripada titik kod untuk "10" (56), menyebabkan "2" dianggap "kurang daripada" "10" dalam perbandingan rentetan.

Untuk menyelesaikan dilema ini dan membandingkan nilai berangka dengan tepat sebagai integer, adalah penting untuk menghuraikan rentetan secara manual menjadi integer Ini boleh dicapai menggunakan fungsi parseInt, yang mengambil rentetan dan radix asas sebagai argumen.

Sebagai contoh, untuk menukar rentetan "2" kepada integer dan melakukan perbandingan bermakna dengan "10":

alert(parseInt("2", 10) > parseInt("10", 10));
Salin selepas log masuk

Kod ini dinilai dengan betul kepada palsu, sebagai " 2" sememangnya kurang daripada "10" apabila kedua-duanya dianggap sebagai integer.

Dengan menggunakan penghuraian rentetan yang teliti, seseorang boleh mengelakkan perangkap kelakuan perbandingan rentetan/integer yang mengelirukan Javascript dan memastikan perbandingan berangka yang boleh dipercayai.

Atas ialah kandungan terperinci Mengapa Adakah '2' > '10' dalam Javascript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan