Hari ini saya melihat sepotong kompresor YUI terkompresi Kode JS:
usernum && (ind += index, ind> = usernum && (ind -= usernum), ind <0 && (ind === -2 && (ind = -1), ind += usernum), selli.removeclass ("on"), $ (selli [ind]). addClass ("on"));
Saya menjadi gila, dan mungkin hanya sedikit orang yang bisa memahaminya sekaligus. Lalu "menerjemahkan" dia.
&& (logistik dan)
Berikut ini terutama operasi "&&". Pertama -tama, Anda perlu memahami ini dan melihat contoh sederhana:
1 var a = 1 && 2 && 3; // 3
2 var b = 0 && 1 && 2; // 0
3 var c = 1 && 0 && 2; // 0
4 Peringatan (A), Peringatan (B), Peringatan (C);
Hehe, metode penulisan sangat aneh, hasil dari menjalankan adalah 3, 0, 0. Umumnya kita sering menggunakannya dalam pernyataan IF. Operasi "&&" (logis dan) benar -benar kebalikan dari "||" operasi. Operasi "&&" kembali ketika bertemu salah.
Misalnya: A && B, jika A benar, langsung kembali B, terlepas dari apakah B benar atau salah. Jika A salah, maka kembalikan secara langsung. Dalam contoh di atas, var pertama a = 1 && 2 && 3; karena 1 && 2, 1 benar, return 2; 2 && 3, 2 benar, kembalikan 3.
Setelah memahami operasi "&&", lalu lihat Kode JS Kompresor Yui di permukaan atas, dan terjemahkan:
if (usernum) {ind += index; if (ind> = usernum) {ind- = usernum;} if (ind <0) {if (ind === -2) {ind = -1;} ind += usernum;} selli.removeClass ("on"); $ (selli]. }Untuk malu, saya sudah tua dan telah "menerjemahkan" selama setengah jam, tetapi hanya dengan bantuan rekan -rekan saya bahwa "terjemahan" itu benar.
|| (logis atau)
Mari kita lihat "||" Operasi (logis atau), dan lihat contohnya:
1 var a = 0 || 1 || 2; // 1
2 var b = 1 || 0 || 3; // 1
3 Peringatan (a), peringatan (b);
"||" Operasi kembali ketika bertemu benar. Misalnya: a || b, jika a salah, langsung kembali b, terlepas dari apakah b benar atau salah. Jika A benar, itu akan kembali secara langsung dan tidak akan terus mengeksekusi.
&& (logis dan) dan || (logis atau) harus memperhatikan prioritas mereka:
&& (logika &) prioritas lebih tinggi dari || (Logika atau)
mengembalikan a && b || C ,
Kita dapat menilai nilai pengembalian berdasarkan a. Jika A salah, itu pasti akan mengembalikan C; Jika B dan C keduanya benar, maka kita dapat memutuskan apakah B atau C berdasarkan a. Jika A salah, itu akan kembali c. Jika A benar, itu akan kembali b.
mengembalikan A || b && c
Menurut prioritas, b && c dihitung terlebih dahulu, dan kemudian A atau dengan A; Jika A benar, ia mengembalikan A, apakah itu B atau C, jika A salah, maka jika B salah, ia mengembalikan B, dan jika B benar, ia mengembalikan C;
1 var a = 3 && 0 || 2; // 2
3 var b = 3 || 0 && 2; // 3
5 var c = 0 || 2 && 3; // 3
6 Peringatan (A), Peringatan (B), Peringatan (C);
Juga terlampir: prioritas operator JS (terdaftar dari tinggi ke rendah)
| Operator | menggambarkan |
| . [] () | Akses Lapangan, Subskrip Array, Panggilan Fungsi, dan Pengelompokan Ekspresi |
| ++ - - ~! Hapus tipe baru batal | Operator unary, tipe data pengembalian, pembuatan objek, nilai yang tidak ditentukan |
| */ % | Perkalian, pembagian, ekstraksi cetakan |
| + - + | Tambahan, pengurangan, gabungan string |
| << >> >>>> | Menggeser |
| <<=>> = instanceof | Kurang dari, kurang dari atau sama dengan, lebih besar dari, lebih besar dari atau sama dengan, instanceof |
| ==! = ===! == | Sama, tidak sama, setara dengan ketat, tidak setara dengan ketat |
| & | bitwise dan |
| ^ | bitwise xor |
| | | bitwise atau |
| && | Logika dan |
| || | Logis atau |
| ?: | kondisi |
| = op = | Penugasan, penugasan operasional |
| , | Evaluasi berganda |
Artikel di atas secara singkat membahas operator JS && dan || Dan prioritas mereka adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.