if(!!boolean)两次取反

今天看到一段代码里面有两次取反,刚开始看不懂,后来问人才知道,类型转换是将对应的类型转换为boolean型,!!b指的是将b转换为boolea值  去两次非是因为将b转换位boolean值后取了一次非,所以得到的值正好相反,再取一次反回来,也就是说if(!!boolean)和iif(boolean)j结果是一样的,只是前者不一定是什么类型,但是后者是转成了Boolean类型,之所以两次取反就是转换成boolean,以此避免后期可能会因为不确定的数据类型报错。

if( event.srcElement.tagName.toLowerCase() == "a" ){
if( this.lastClick != event.target){
event.target.className = "active";
if( !!this.lastClick){
this.lastClick.className = "";
}
this.lastClick = event.target;
} else {
console.log("重复点击不触发");
}
}

posted @ 2017-09-11 17:36  言晓落  阅读(1120)  评论(0编辑  收藏  举报