!! Secara umum digunakan untuk melemparkan ekspresi berikut ke dalam data boolean (boolean), yaitu, itu hanya bisa benar atau salah;
Saya sering melihat contoh seperti ini:
Salinan kode adalah sebagai berikut:
var a;
var b = !! a;
A tidak terdefinisi secara default. ! A benar, !! a Salah, jadi nilai B adalah salah, tidak lagi tidak terdefinisi, atau nilai -nilai lain, yang terutama memberikan kenyamanan untuk penilaian berikutnya.
!! Secara umum digunakan untuk melemparkan ekspresi berikut ke dalam data boolean (boolean), yaitu, itu hanya bisa benar atau salah;
Karena JavaScript adalah bahasa tipe lemah (variabel tidak memiliki tipe data tetap), kadang-kadang perlu dilemparkan ke tipe yang sesuai, seperti:
a = parseInt ("1234") a = "1234" -0 // Konversi ke angka b = 1234+"// Konversi ke string c = someObject.toString () // Konversi objek menjadi stringDi antara mereka, yang pertama dan keempat adalah konversi eksplisit, dan 2 dan 3 adalah konversi implisit
Konversi Boolean, Aturan Konvensi JavaScript
false, tidak terdefinisi, null, 0, "" adalah false
Benar, 1, "somestring", [objek] adalah benar
Untuk nilai -nilai lain yang dikonversi secara implisit seperti nol dan tidak terdefinisi, The! Operator akan menghasilkan hasil yang benar, sehingga tujuan menggunakan dua tanda seru adalah untuk mengubah nilai -nilai ini menjadi nilai boolean yang "setara";
Mari kita lihat lagi:
var foo; waspada (! foo); // tidak difitnah, tanda seru mengembalikan true; waspada (! goo); // di null, titik seru mengembalikan true; var o = {flag: true}; var test = !! o.flag; // setara dengan var test = o.flag || false; waspada (tes);Contoh ini menunjukkan bahwa ketika tidak bersuara dan nol, pengembalian satu titik seru adalah benar, dan pengembalian dua titik seru adalah false, sehingga fungsi dua titik seru adalah bahwa jika nilai variabel ditetapkan dengan jelas (non-nol/tidak/0/"dan" nilai yang setara), hasilnya akan dikembalikan berdasarkan nilai aktual dari variabel. Jika tidak diatur, hasilnya akan dikembalikan.