今日qunitのソースコードを見てみると、意味は分かるのですが、二重感嘆符の役割が分かりません。
function id( name ) {
return !! ( typeof document !== "unknown" && document && document.getElementById ) &&
document.getElementById( name );
}
次に、オンラインでいくつかの情報を確認しました。三項演算子の場合、ブール値を返します。
var ret = !!document.getElementById
は次と同等です:
var ret = document.getElementById ? true : false;
値が空でない文字列およびゼロ以外の数値の場合は true を返し、値が空の文字列の場合は false を返します。 、0またはnull。
var a = " "; !a) ; //true
var a = "s"; //true
var a = true; = 1; アラート(!!a); // true
var a = -1; // true
var a = -2; true
var a = 0; //false
var a = ""; //false
var a = false; (!! a); //false
var a = null; //false