Rumah >hujung hadapan web >tutorial js >Pengenalan kepada peranan tanda seru berganda dalam kemahiran JavaScript_javascript

Pengenalan kepada peranan tanda seru berganda dalam kemahiran JavaScript_javascript

WBOY
WBOYasal
2016-05-16 16:35:491197semak imbas

!! Biasanya digunakan untuk memaksa ungkapan berikut kepada data jenis Boolean (boolean), iaitu, ia hanya boleh menjadi benar atau palsu;

Saya sering melihat contoh seperti ini:


Salin kod Kod adalah seperti berikut:
var a;
var b=!!a;

a lalai kepada undefined. !a adalah benar, !!a adalah palsu, jadi nilai b adalah palsu, bukan nilai yang tidak ditentukan atau nilai lain, terutamanya untuk memudahkan penghakiman seterusnya.
!! Biasanya digunakan untuk memaksa ungkapan berikut kepada data jenis Boolean (boolean), iaitu, ia hanya boleh menjadi benar atau palsu; Oleh kerana JavaScript ialah bahasa yang ditaip lemah (pembolehubah tidak mempunyai jenis data tetap), kadangkala perlu menghantarnya ke jenis yang sepadan, serupa dengan:



a=parseInt(“1234″)
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串
Jenis 1 dan 4 ialah penukaran eksplisit dan jenis 2 dan 3 ialah penukaran tersirat

Penukaran Boolean, konvensyen JavaScript ialah

false, undefined, null, 0, "" is false

true, 1, "somestring", [Object] is true

Untuk nilai lain yang ditukar secara tersirat seperti null dan undefined, menggunakan operator ! akan menghasilkan hasil yang benar, jadi tujuan menggunakan dua tanda seru adalah untuk menukar nilai ini kepada nilai Boolean "setara". >

Mari kita lihat semula:


Contoh ini menunjukkan bahawa apabila undiffed dan null digunakan, menggunakan satu tanda seru mengembalikan benar, dan menggunakan dua tanda seru mengembalikan palsu Oleh itu, peranan dua tanda seru ialah jika nilai pembolehubah ditetapkan secara eksplisit ( Bukan -null/unified/0/"" dan nilai lain), hasilnya akan dikembalikan berdasarkan nilai sebenar pembolehubah Jika ia tidak ditetapkan, hasilnya akan kembali palsu.
var foo; 
alert(!foo);//undifined情况下,一个感叹号返回的是true; 
alert(!goo);//null情况下,一个感叹号返回的也是true; 
var o={flag:true}; 
var test=!!o.flag;//等效于var test=o.flag||false; 
alert(test);
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