Rumah > hujung hadapan web > tutorial js > Bit Pantas JavaScript: Perbandingan Buruk

Bit Pantas JavaScript: Perbandingan Buruk

Patricia Arquette
Lepaskan: 2024-10-17 06:18:29
asal
766 orang telah melayarinya

JavaScript Quick Bits: Bad Comparisons

Pepijat kecil boleh merayap masuk dari tempat yang tidak dijangka. Nilai buruk boleh membuat logik bersyarat anda gagal dalam cara yang tidak dijangka. Mari kita lihat dengan cepat sakit kepala ketidaksamaan yang teruk.

Asas

Fungsi ini tidak sama. Mereka kebanyakannya sama tetapi mereka mempunyai perbezaan yang sangat spesifik. Adakah anda melihatnya?

const one = (a) => a > 10;
const two = (a) => !(a <= 10);
Salin selepas log masuk

Setiap kali kami melakukan semakan ketaksamaan dengan undefined atau NaN, hasilnya adalah palsu. Jika kami tidak menyemak kes tepi secara eksplisit, dua semakan "setara" boleh mengembalikan jawapan yang berbeza.

Bagaimana Ia Berlaku

if (!(value <= 10)) {
  // ...
Salin selepas log masuk

Jika anda terjumpa kod itu, anda mungkin menukarnya kepada if (a > 10) { tanpa teragak-agak.

  • Ia lebih pendek.
  • Ia lebih mudah dibaca.
  • Untuk semua nilai normal mereka adalah sama.

Mengapa ia Penting

Tetapi kami tidak selalu mendapat nilai normal. Ini boleh menjadi perubahan besar pada kod anda. Ia boleh menyebabkan sangat sukar untuk menyelesaikan masalah kecacatan. Tiada apa-apa dalam kod mudah ini menunjukkan bahawa kita mungkin menghadapi nilai "buruk", jadi anda mungkin terlepas nilai itu sepenuhnya.

Keselamatan jenis juga tidak akan membetulkannya, kerana NaN ialah nombor...ia hanya satu buruk.

Kesimpulan

Jika anda menghadapi keadaan pelik seperti ini dalam kod anda, tanya diri anda apa yang berlaku kepada nilai yang salah jika anda menukarnya. Semoga kod anda menghalang anda daripada mendapat nilai yang buruk dan melakukan matematik yang buruk, tetapi bersikap sedikit defensif mengenai perubahan ini boleh menjimatkan banyak masalah untuk diri masa depan anda.

Dalam kes seperti ini, biasanya lebih baik untuk membuat semakan eksplisit untuk nilai buruk. Ini menyampaikan kemungkinan input dan hasil yang dijangkakan dengan jelas kepada pembangun lain.

if (Number.isNaN(value) || value > 10) {
  // ...
Salin selepas log masuk

Atas ialah kandungan terperinci Bit Pantas JavaScript: Perbandingan Buruk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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