Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Operator Tilde Digunakan Sebelum Ungkapan dalam JavaScript?

Mengapa Operator Tilde Digunakan Sebelum Ungkapan dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-11-24 18:35:35594semak imbas

Why is the Tilde Operator Used Before an Expression in JavaScript?

Kepentingan Operator Tilde dalam Ungkapan Sebelumnya

Pengendali tilde (~) ialah operator bitwise dalam JavaScript yang menterbalikkan semua bit masuk operannya. Operator ini jarang digunakan sebelum penilaian ungkapan, menimbulkan persoalan tentang tujuan dan maksudnya.

Mari kita pertimbangkan contoh kod berikut:

var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() )
           ? 'value'
           : 'innerHTML'

Dalam kod ini, operator tilde digunakan sebelum fungsi indexOf(). Fungsi indexOf() mengembalikan indeks kejadian pertama rentetan sasaran dalam rentetan. Jika rentetan sasaran tidak ditemui, ia mengembalikan -1.

Kesan Operator Tilde

Pengendali tilde menukar nilai pulangan indexOf() kepada 32 -bit integer dan membalikkan semua bitnya. Sebagai contoh, jika indexOf() mengembalikan -1 (menunjukkan bahawa rentetan sasaran tidak ditemui), pengendali tilde akan menyelak semua bit perwakilan binarinya:

0000 0000 0000 0000 0000 0000 0000 0001 (original)
=>
1111 1111 1111 1111 1111 1111 1111 1110 (inverted)

Hasilnya ialah nombor positif yang dianggap sebagai kebenaran dalam JavaScript. Oleh itu, ungkapan ~'input,textarea'.indexOf(target.tagName.toLowerCase()) menilai kepada benar jika rentetan sasaran tidak ditemui dan kepada palsu jika ditemui.

Gunakan Kes untuk Operator Tilde

Walaupun jarang berlaku, operator tilde mempunyai pelbagai kegunaan, termasuk:

  • Pengaturcaraan peringkat rendah: Ia boleh memanipulasi bit secara langsung.
  • Pengoptimuman prestasi: Ia boleh digunakan dalam helah bitwise untuk meningkatkan prestasi dalam situasi tertentu.
  • Benar/Falsy Penghantaran: Ia boleh digunakan sebagai helah untuk menukar nilai pulangan indexOf() kepada nilai kebenaran untuk kes yang tidak ditemui.
  • Pemotongan Nombor: Ia boleh disalahgunakan untuk memotong nombor kepada 32 bit, dengan berkesan melaksanakan Math.floor() untuk positif nombor.

Alternatif kepada Operator Tilde

Untuk menguji kewujudan nilai dalam rentetan atau tatasusunan, JavaScript kini menyediakan kaedah khusus:

  • Array.prototype.includes() untuk tatasusunan
  • String.prototype.includes() untuk rentetan

Kaedah ini mengembalikan nilai boolean secara langsung, menjadikannya alternatif yang lebih jelas dan cekap kepada tilde pengendali.

Kesimpulan

The pengendali tilde, apabila mendahului ungkapan, menukar nilai ungkapan kepada perwakilan bitwise dan membalikkan semua bitnya. Ia mempunyai beberapa kegunaan yang tidak jelas tetapi secara amnya tidak digalakkan kerana kekurangan kejelasan dan perkaitan yang berkurangan berbanding dengan kaedah yang lebih moden seperti Array.prototype.includes() dan String.prototype.includes().

Atas ialah kandungan terperinci Mengapa Operator Tilde Digunakan Sebelum Ungkapan 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