// 如果flag 有明确的bool值,那是毋庸置疑的 ,
var o={flag:true};
alert(!!o.flag);//弹出为 true
// 那么,对于没有明确bool值的呢?就用到!!来初始化bool值了
var o2={};
alert(!o2.flag);//弹出为 undefined
var o3={flag:undefined}//对于 undefined null ""
alert(!o3.flag);//弹出为 false 等同于:alert(!(!o2.flag));
所以呢,!!的作用就是初始化元素为bool类型值
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
// 如果flag 有明确的bool值,那是毋庸置疑的 , var o={flag:true}; alert(!!o.flag);//弹出为 true // 那么,对于没有明确bool值的呢?就用到!!来初始化bool值了 var o2={}; alert(!o2.flag);//弹出为 undefined var o3={flag:undefined}//对于 undefined null "" alert(!o3.flag);//弹出为 false 等同于:alert(!(!o2.flag)); 所以呢,!!的作用就是初始化元素为bool类型值