var o={flag:true};
var m=!!o.flag;//等效于var test=o.flag||false;
var n=!!o.test;
console.log(m);//true
console.log(o.flag);//true
console.log(n);//false
console.log(o.test);//undefined
由于对null与undefined用!操作符时都会产生true的结果,
两个感叹号的作用:
如果明确设置了o中flag的值(非 null/undefined/0""/等值);自然m就会取跟o.flag一样的值;
如果o中没有test值;o.test的值是undefined;自然n会取false;而不是 null或undefined。
网友评论