Javascript: Memahami String vs. Integer Comparison
Dalam JavaScript, membandingkan rentetan dan integer kadangkala boleh membawa kepada hasil yang tidak dijangka. Rentetan sememangnya berbeza daripada nombor dan peraturan perbandingan boleh berbeza jauh antara kedua-duanya.
Pertimbangkan contoh berikut:
console.log("2" > "10"); // Returns true
Ini mungkin kelihatan berlawanan dengan intuisi, tetapi ia disebabkan oleh cara JavaScript mengendalikan perbandingan rentetan. Rentetan dibandingkan secara leksikografi, bermakna ia dibandingkan dengan watak demi watak. Dalam kes ini, "2" secara leksikografi lebih besar daripada "10" kerana aksara pertamanya ("2") datang selepas "1" dalam susunan abjad.
Untuk mengelakkan isu ini dan memastikan perbandingan integer, kita perlu untuk menghuraikan rentetan menjadi integer secara eksplisit menggunakan fungsi parseInt(). Berikut ialah contoh yang diperbetulkan:
console.log(parseInt("2", 10) > parseInt("10", 10)); // Returns false
Dengan menghuraikan rentetan kepada integer menggunakan penukaran asas-10 (10), kami memastikan bahawa perbandingan dilakukan secara berangka, menghasilkan hasil yang dijangkakan. Pendekatan ini penting untuk sebarang senario yang perbandingan integer adalah penting.
Atas ialah kandungan terperinci Mengapa '2' Muncul Lebih Besar Daripada '10' dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!