`
liuguofeng
  • 浏览: 450087 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JavaScript中双叹号“!!”作用

 
阅读更多

经常看到这样的例子:

var 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() //将对象转换为字符串

其中第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);

这段例子,演示了在undifined和null时,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,如果明确设置了变量的值(非null/undifined/0/”“等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。

分享到:
评论

相关推荐

    JavaScript中双叹号!!作用示例介绍

    JavaScript中双叹号(!!)的作用是将任意值通过逻辑非操作符(!)两次使用,将其强制转换为布尔值(boolean)。在JavaScript中,布尔转换遵循特定规则,即“假值”(falsy values)在转换后为false,而“真值”...

    JavaScript中双叹号(!!)作用示例介绍

    这种转换在JavaScript中非常常见,因为JavaScript是一种弱类型语言,即变量不需要显式声明类型,它们会根据所赋值的类型自动推断。双叹号(!!)操作符通常用于在需要布尔值的情况下确保表达式的结果为true或false。...

    linux中叹号命令(!)的使用小结

    双叹号!! !!代表上一条输入的命令,可以和其他命令组合起来构成新的命令 eg: $ ./startup.sh $ cat !!  此命令相当于 cat ./startup.sh,省去了来回切换 !$ 代表得是上一条命令中最后一个

    me叹号、TXE叹号、驱动不兼容补丁合集

    "me叹号"和"TXE叹号"通常指的是在Windows系统中遇到的两种特定错误提示,而"驱动不兼容补丁合集"则是一个专门针对这些问题的解决方案。 "me叹号",全称为"Memory Error",通常在Windows系统中出现此错误时,屏幕会...

    yahoo-logo点击叹号发音按钮.rar

    在JavaScript特效中,"其它代码"标签可能指的是这个特效不局限于常见的动画或者交互效果,而是一种特定的、可能较为独特的交互设计。在这种情况下,"点击叹号发音按钮"意味着我们有一个按钮,其图形是Yahoo! logo上...

    WIN7 ME叹号补丁.rar

    标题中的“WIN7 ME叹号补丁”指的是针对Windows 7操作系统的一个修复程序,它主要用于解决系统中出现的特定问题,特别是与系统错误提示相关的“叹号”警告。在Windows操作系统中,当某个程序或服务出现问题时,通常...

    MySQL用户密码中的特殊字符叹号(!)的妙用

    2. **转义叹号**:在shell中,可以使用反斜杠(\)来转义特殊字符,所以`fd52\!wubx&,`会被正确传递给MySQL,而不会触发历史命令的解析。 3. **使用密文密码**:MySQL客户端允许通过`--password`或`-p`选项后面不...

    WinCC画面对象上为何显示黄色叹号?.docx

    在使用西门子WinCC(SIMATIC Human Machine Interface)监控与控制系统时,用户可能会遇到一个常见问题:画面中的对象上出现黄色叹号。这个黄色叹号是WinCC系统用来提示对象与后台数据变量的链接存在问题的一种警告...

    深入浅析JavaScript函数前面的加号和叹号

    在JavaScript中,加号通常用于数字的加法运算,但当它放在一个表达式前时,它变成了一元操作符。例如,`+function(){}()`。这里的加号将函数转换为一个函数表达式,而不是一个函数声明。函数声明通常以`function`...

    串口无法读取显示黄色叹号,串口驱动下载

    在描述中提到的问题,"串口无法读取显示黄色叹号",这是Windows系统中常见的设备驱动问题。黄色叹号通常表示设备未正常工作或缺少驱动程序。在这种情况下,系统可能无法识别串口设备,比如PL2303,这是一个流行的USB...

    局域网黄叹号解决方法.pdf

    局域网黄叹号解决方法.pdf

    2016年高考语文标点符号的正确使用叹号素材

    标点符号是中文写作中不可或缺的一部分,特别是在表达情感或强调语气时,叹号的作用尤为重要。在2016年高考语文中,正确使用叹号是考生必须掌握的关键技能。下面我们将详细探讨叹号的用法及其注意事项。 叹号主要...

    potalserver 安卓叹号杀手

    5.1 安卓系统联网包联网提示消息,安装这个后修改为默认地址即可

    JavaScript中两个感叹号的作用说明

    总的来说,双感叹号在JavaScript中主要用于强制类型转换,将任何值转化为布尔值,并且确保结果始终是true或false。它在处理可能的null、undefined或其他非布尔值时,提供了额外的保障,使代码更具健壮性和一致性。在...

Global site tag (gtag.js) - Google Analytics