Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Operator Double Bitwise NOT (~~) dalam JavaScript Berkelakuan Berbeza untuk Nombor Negatif?

Mengapa Operator Double Bitwise NOT (~~) dalam JavaScript Berkelakuan Berbeza untuk Nombor Negatif?

Barbara Streisand
Barbara Streisandasal
2024-11-01 17:26:30977semak imbas

Why Does the Double Bitwise NOT Operator (~~) in JavaScript Behave Differently for Negative Numbers?

Apakah Tujuan Double Bitwise NOT Operator (~~) dalam JavaScript?

Dalam JavaScript, "double tilde" (~ ~) operator ialah pengendali Bitwise NOT berganda. Ia berfungsi sebagai alternatif yang lebih pantas kepada kaedah Math.floor() untuk nombor positif.

Apabila digunakan pada nombor positif, ~~ melakukan operasi BUKAN mengikut bit dua kali. Ini mengakibatkan pemangkasan bahagian pecahan nombor dengan berkesan, serupa dengan Math.floor().

Sebagai contoh, ~~5.8 akan mengembalikan 5, sama seperti Math.floor(5.8).

Walau bagaimanapun, ~~ berkelakuan berbeza dengan nombor negatif. Daripada membundarkan ke bawah, ia memotong bahagian pecahan, pada asasnya mengembalikan integer ke arah sifar.

Sebagai contoh, ~~-5.8 akan mengembalikan -5, tidak seperti Math.floor(-5.8) yang membundar ke - 6.

Adalah penting untuk ambil perhatian bahawa ~~ tidak bertujuan untuk digunakan dengan nombor negatif dan tingkah lakunya untuk input negatif boleh berbeza-beza merentas persekitaran JavaScript yang berbeza. Oleh itu, apabila menggunakan nilai negatif, disyorkan untuk menggunakan Math.floor() atau kaedah lain yang sesuai untuk pembundaran secara eksplisit.

Atas ialah kandungan terperinci Mengapa Operator Double Bitwise NOT (~~) dalam JavaScript Berkelakuan Berbeza untuk Nombor Negatif?. 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