Meneroka Operator Ajaib ~~ (Double Tilde) dalam JavaScript
Dalam alam pengembaraan JavaScript, anda mungkin telah menemui misteri pengendali. Pada pandangan pertama, ia menyerupai tilde tunggal ~, operator NOT bitwise yang boleh dipercayai. Adakah ini bermakna melakukan double NOT, hanya mengembalikan nilai yang sama? Mari kita selami lebih dalam dan temui tujuan sebenarnya.
Menyingkap Kebenaran
Rahsia pengendali terletak pada cara ia mentafsir operannya. Tidak seperti tilde tunggal, menukar inputnya kepada integer 32-bit yang ditandatangani, walaupun ia nombor atau rentetan. Dengan penukaran ini, ia melakukan operasi bitwise yang secara berkesan mengalih keluar semua selepas titik perpuluhan.
Dalam erti kata lain, operator ini berkelakuan seperti fungsi berikut:
<code class="javascript">function(x) { if(x < 0) return Math.ceil(x); else return Math.floor(x); }</code>
Walau bagaimanapun, ia hanya berfungsi dengan betul untuk nilai antara -(231) dan 231 - 1 untuk mengelakkan limpahan.
Mengapa ~~ bukan BUKAN daripada BUKAN
Adalah penting untuk memahami bahawa tidak bersamaan dengan menggunakan operasi NOT dua kali. Walaupun operasi NOT pertama menyongsangkan bit, yang kedua hanya membalikkannya semula, menghasilkan nilai asal. Sebaliknya, memotong terus bahagian perpuluhan nombor itu.
Sebagai contoh, nombor -43.2, diwakili dalam perduaan 32-bit sebagai:
<code class="binary">11111111111111111111111111010101</code>
Selepas memohon ~~, ia menjadi:
<code class="binary">11111111111111111111111111010101</code>
yang diterjemahkan kembali kepada -43. Ini menunjukkan bahawa ~~ berkesan mengalih keluar bahagian pecahan nombor.
Nota Awas
Walaupun ~~ boleh berguna untuk menukar hujah rentetan kepada nombor, risiko limpahannya dan ketidaktepatan yang wujud untuk bukan integer menjadikannya pilihan yang berisiko. Pertimbangkan untuk menggunakan kaedah yang lebih mudah seperti x atau Number(x).
Kesimpulannya, ~~ ialah operator menarik yang memotong nilai perpuluhan daripada nombor atau rentetan. Dengan memahami tingkah laku dan batasan uniknya, anda boleh memanfaatkan kuasanya secara bertanggungjawab dalam pengembaraan JavaScript anda.
Atas ialah kandungan terperinci ## Apakah yang Sebenarnya Dilakukan Operator ~~ (Double Tilde) dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!