Memahami Perbandingan Kesaksamaan dalam JavaScript
Dalam JavaScript, perbandingan kesamaan sering menjadi punca kekeliruan, terutamanya apabila menggunakan tanda sama dengan tunggal (= ). Mari kita teliti sebab coretan kod yang disediakan dalam soalan asal tidak berkelakuan seperti yang diharapkan.
Peranan Tugasan
Tanda tunggal sama dengan (=) digunakan untuk tugasan, bukan perbandingan kesamarataan. Akibatnya, apabila anda menulis:
if (str = '')
anda sebenarnya memberikan rentetan kosong kepada pembolehubah 'str' dan bukannya menyemak nilainya untuk kesamaan.
Perbandingan Kesaksamaan Operator
Untuk membandingkan nilai bagi kesaksamaan dalam JavaScript, anda harus menggunakan tanda ganda sama (==) untuk longgar perbandingan (membolehkan untuk paksaan jenis) atau tanda sama dengan tiga kali ganda (===) untuk perbandingan yang ketat (tanpa paksaan jenis).
Melawat semula Kod
Menggantikan single tanda sama dengan double atau triple equals akan memastikan perbandingan yang diingini adalah dilakukan:
if (str === '') { console.log("The string cannot be blank"); } else if (str.length <= 9) { console.log("The string must be at least 9 characters long"); } else if (str.length <= 10) { console.log("The string is long enough."); }
Penjelasan Pembetulan
Menggunakan === (perbandingan ketat) dalam kes ini menjamin bahawa nilai 'str' dibandingkan dengan rentetan kosong, mengelakkan ralat tugasan. Akibatnya, kod akan menentukan dengan tepat sama ada rentetan itu kosong, mempunyai panjang kurang daripada atau sama dengan 9 atau mempunyai panjang sehingga 10.
Atas ialah kandungan terperinci Mengapa Kod JavaScript Saya Ditugaskan Daripada Membandingkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!