Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa `0.5 | 0` Nilaikan kepada 0 dalam JavaScript?

Mengapa `0.5 | 0` Nilaikan kepada 0 dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-27 05:28:30500semak imbas

Why Does `0.5 | 0` Evaluate to 0 in JavaScript?

Meneroka Operasi Bitwise dalam JavaScript: Kes Penasaran ""|"

Dalam JavaScript, aksara paip tunggal ""|" " mewakili bitwise atau operasi. Operator ini melakukan penilaian logik pada perwakilan binari operannya dan mengeluarkan nilai perduaan dengan kedudukan bit ditetapkan kepada 1 jika mana-mana operan mempunyai set bit yang sepadan kepada 1.

Untuk memahami bagaimana operator ini berfungsi, mari kita pertimbangkan contoh:

<code class="js">console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1</code>

Anehnya, 0.5 | 0 menilai kepada 0, manakala -1 | 0 dan kedua-duanya mengembalikan integer mereka hanya beroperasi pada integer. Apabila 0.5 diserahkan kepada operator, ia dipotong kepada 0, meninggalkan kita dengan 0 | 0, yang menghasilkan 0.

Sebaliknya, kedua-dua -1 dan 1 adalah integer bitwise atau operasi menetapkan bit yang sepadan kepada 1 jika mana-mana operan mempunyai set bit tersebut Memandangkan kedua-dua -1 dan 1 mempunyai semua bit mereka ditetapkan kepada 1, operasi hanya mengembalikan integer: -1 | 0 mengembalikan 1.

Pada dasarnya, pengendali paip tunggal melaksanakan bitwise atau operasi, yang menetapkan bit kepada 1 jika mana-mana input mempunyai set bit yang sepadan kepada 1. Walau bagaimanapun, memandangkan operasi bitwise hanya digunakan untuk integer, JavaScript memotong operan bukan integer, berpotensi mengubah output operasi.

Atas ialah kandungan terperinci Mengapa `0.5 | 0` Nilaikan kepada 0 dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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