经常看到这样的例子:
var a;
var b=!!a;
var b=!!a;
a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利。
!!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;
因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如:
a=parseInt(“1234″)
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串
a=”1234″-0 //转换为数字
b=1234+”” //转换为字符串
c=someObject.toString() //将对象转换为字符串
其中第1种、第4种为显式转换,2、3为隐式转换
布尔型的转换,javascript约定规则为
false、undefinded、null、0、”” 为 false
true、1、”somestring”、[Object] 为 true
对null与undefined等其他用隐式转换的值,用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于将这些值转换为“等价”的布尔值;
再来看看:
var foo;
alert(!foo);//undifined情况下,一个感叹号返回的是true;
alert(!goo);//null情况下,一个感叹号返回的也是true;
var o={flag:true};
var test=!!o.flag;//等效于var test=o.flag||false;
alert(test);
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。
相关推荐
JavaScript中双叹号(!!)的作用是将任意值通过逻辑非操作符(!)两次使用,将其强制转换为布尔值(boolean)。在JavaScript中,布尔转换遵循特定规则,即“假值”(falsy values)在转换后为false,而“真值”...
这种转换在JavaScript中非常常见,因为JavaScript是一种弱类型语言,即变量不需要显式声明类型,它们会根据所赋值的类型自动推断。双叹号(!!)操作符通常用于在需要布尔值的情况下确保表达式的结果为true或false。...
双叹号!! !!代表上一条输入的命令,可以和其他命令组合起来构成新的命令 eg: $ ./startup.sh $ cat !! 此命令相当于 cat ./startup.sh,省去了来回切换 !$ 代表得是上一条命令中最后一个
"me叹号"和"TXE叹号"通常指的是在Windows系统中遇到的两种特定错误提示,而"驱动不兼容补丁合集"则是一个专门针对这些问题的解决方案。 "me叹号",全称为"Memory Error",通常在Windows系统中出现此错误时,屏幕会...
在JavaScript特效中,"其它代码"标签可能指的是这个特效不局限于常见的动画或者交互效果,而是一种特定的、可能较为独特的交互设计。在这种情况下,"点击叹号发音按钮"意味着我们有一个按钮,其图形是Yahoo! logo上...
标题中的“WIN7 ME叹号补丁”指的是针对Windows 7操作系统的一个修复程序,它主要用于解决系统中出现的特定问题,特别是与系统错误提示相关的“叹号”警告。在Windows操作系统中,当某个程序或服务出现问题时,通常...
2. **转义叹号**:在shell中,可以使用反斜杠(\)来转义特殊字符,所以`fd52\!wubx&,`会被正确传递给MySQL,而不会触发历史命令的解析。 3. **使用密文密码**:MySQL客户端允许通过`--password`或`-p`选项后面不...
在使用西门子WinCC(SIMATIC Human Machine Interface)监控与控制系统时,用户可能会遇到一个常见问题:画面中的对象上出现黄色叹号。这个黄色叹号是WinCC系统用来提示对象与后台数据变量的链接存在问题的一种警告...
在JavaScript中,加号通常用于数字的加法运算,但当它放在一个表达式前时,它变成了一元操作符。例如,`+function(){}()`。这里的加号将函数转换为一个函数表达式,而不是一个函数声明。函数声明通常以`function`...
在描述中提到的问题,"串口无法读取显示黄色叹号",这是Windows系统中常见的设备驱动问题。黄色叹号通常表示设备未正常工作或缺少驱动程序。在这种情况下,系统可能无法识别串口设备,比如PL2303,这是一个流行的USB...
局域网黄叹号解决方法.pdf
标点符号是中文写作中不可或缺的一部分,特别是在表达情感或强调语气时,叹号的作用尤为重要。在2016年高考语文中,正确使用叹号是考生必须掌握的关键技能。下面我们将详细探讨叹号的用法及其注意事项。 叹号主要...
5.1 安卓系统联网包联网提示消息,安装这个后修改为默认地址即可
总的来说,双感叹号在JavaScript中主要用于强制类型转换,将任何值转化为布尔值,并且确保结果始终是true或false。它在处理可能的null、undefined或其他非布尔值时,提供了额外的保障,使代码更具健壮性和一致性。在...