Bagaimanakah 0 dan -0 Berbeza dalam JavaScript, Walaupun Kesaksamaan Tegas Melayan Mereka sebagai Sama?

DDD
Lepaskan: 2024-11-19 21:30:03
asal
693 orang telah melayarinya

How Do  0 and -0 Differ in JavaScript, Despite Strict Equality Treating Them as Equal?

Perbezaan antara 0 dan -0 dalam ECMAScript 5.1

Spesifikasi ECMAScript 5.1 secara jelas membezakan antara 0 dan -0, walaupun mereka menilai kepada nilai yang sama jika dibandingkan. Perbezaan ini berpunca daripada pelaksanaan nombor titik terapung dalam JavaScript menggunakan piawaian IEEE 754.

Piawaian IEEE 754 memerlukan kedua-dua 0 dan -0 atas sebab teknikal yang berkaitan dengan operasi berangka dan pembahagian dengan sifar. Walau bagaimanapun, walaupun terdapat perbezaan teknikal ini, perbandingan kesamaan yang ketat dalam JavaScript menganggap 0 dan -0 sebagai sama.

Menurut Algoritma Perbandingan Kesamaan Ketat yang ditakrifkan dalam spesifikasi ECMAScript 5.1, jika kedua-dua operan ialah nombor, perbandingan akan kembalikan benar walaupun satu ialah 0 dan satu lagi ialah -0. Kes khas ini ditakrifkan secara eksplisit dalam algoritma:

- If x is +0 and y is −0, return true.
- If x is −0 and y is +0, return true.
Salin selepas log masuk

Ini membenarkan sebab praktikal, kerana membezakan antara 0 dan -0 berkemungkinan memerlukan pengendalian khas dalam kod JavaScript. Untuk membezakan secara eksplisit antara mereka, kaedah perbandingan Object.is yang diperkenalkan dalam ES2015 boleh digunakan, kerana ia mengembalikan palsu apabila membandingkan 0 hingga -0.

Atas ialah kandungan terperinci Bagaimanakah 0 dan -0 Berbeza dalam JavaScript, Walaupun Kesaksamaan Tegas Melayan Mereka sebagai Sama?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan