2011-03-23 97 views
7

可能重复:
What is the !! operator in JavaScript?javascript:什么是不是? (!!运营商)

什么是不是没有在JavaScript我有这见过几次:)

function foo(){ 
    return !!(window.history); 
} 
+2

完全重复:http://stackoverflow.com/questions/784929/what- is-the-operator-in-javascript – ig0774 2011-03-23 11:44:06

+1

它是重复的,但重复的问题几乎没有提到它被使用的原因。在你的情况下,它是[底部的答案](http://stackoverflow.com/questions/784929/what-is-the-operator-in-javascript/4339463#4339463):这是一个成语,检查'是定义'。 – Rup 2011-03-23 11:48:35

+0

@rup我同意那里的答案很奇怪,我不明白他们中的一半答案和他们的技术学士学位,他们应该更加友好,他们的答案并不是假设每个人都在他们的水平:)尤其是当有人问起:) – Val 2011-03-23 12:05:06

回答

11

个我相信这是用来强制布尔类型...

例如

if("true" == true){ 
    alert("1"); 
}else{ 
    if(!!"true" == true){ 
     alert("2"); 
    } 
} 

警报2不是1

+1

这是坏的。尝试'if(!!“false”== true){alert(“false”); ''看看会发生什么。 – Randolpho 2013-02-28 19:48:29

+9

我没有说你应该使用它 – sharpner 2013-03-01 14:39:57

3

我想它用来[不那么]隐式地将值转换为布尔类型