问题描述
vue代码中有双感叹号,代表是什么意思?
详细说明
!!就是将所有其他类型都转换成boolean型
!!{} 就是true
!!'' 就是false
js 中,! 表示运算符“非”,如果变量不是布尔类型,会将变量自动转化为布尔类型再取非,!! ( 两个感叹号),就可以将变量转化为对应布尔值,!!!(三个感叹号)没有什么意义,和一个感叹号的效果是一样的。一般他们认为 !! 表示将一个变量转为boolean型,再加一个!是对boolean型取反,和 !false 或者 !true 一样。
举例:
var foo,goo;
alert(!foo);//undifined情况下,一个感叹号返回的是true;
alert(!goo);//null情况下,一个感叹号返回的也是true;
var o={flag:true};
var test=!!o.flag;//等效于var test=o.flag||false;
alert(test);
这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,
如果明确设置了变量的值(非null/undifined/0/""等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。