Ungkapan Bersyarat dengan Operator Tilde Sebelumnya
Dalam JavaScript, pengendali tilde (~) boleh mendahului ungkapan untuk melakukan penolakan bitwise. Apabila bekerja dengan ungkapan bersyarat, operator ini boleh mempunyai kegunaan khusus.
Contoh Kod:
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
Penjelasan:
Fungsi indexOf() mengembalikan -1 jika nilai sasaran tidak ditemui. Dengan menafikan nilai ini menggunakan operator ~, kami secara berkesan menukarnya kepada truthy (sebarang nilai bukan sifar) untuk padanan dan palsu (-1) untuk bukan padanan.
Operasi Bitwise:
Dalam JavaScript, nombor secara dalaman diwakili sebagai integer 32-bit. Operator ~ membalikkan semua bit dalam operannya, menyongsangkannya dengan berkesan.
Sebagai contoh, jika nilai 'input,textarea'.indexOf( target.tagName.toLowerCase() ) ialah 1 (mewakili aksara 'i'), perwakilan binarinya ialah:
0000 0000 0000 0000 0000 0000 0000 0001
Menggunakan operator ~ membalikkan semua bit, menghasilkan:
1111 1111 1111 1111 1111 1111 1111 1110
Nilai yang terhasil ialah -2 dalam perwakilan pelengkap 2.
Hasil Bersyarat:
Dalam ungkapan bersyarat , nilai ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ialah dinilai untuk menentukan sama ada untuk memberikan 'nilai' atau 'innerHTML' kepada pembolehubah attr. Jika sasaran ditemui, ungkapan akan menilai kebenaran, menyebabkan 'nilai' diberikan kepada attr. Jika tidak, jika sasaran tidak ditemui, ungkapan tersebut akan dinilai sebagai palsu, menyebabkan 'innerHTML' diberikan kepada attr.
Atas ialah kandungan terperinci Bagaimanakah Pengendali Tilde Mempengaruhi Ungkapan Bersyarat dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!