2013-10-02 37 views

回答

3

精美总结了由汤姆·里特作为

// Maximum Obscurity: 
val.enabled = !!userId; 

// Partial Obscurity: 
val.enabled = (userId != 0) ? true : false; 

// And finally, much easier to understand: 
val.enabled = (userId != 0); 

因此在做强制转换为布尔值,然后做双重否定

+0

哦,这是真的。它让我想起了Perl。大声笑 – CodeFarmer

1

!会将任何正值,真值或现有变量(如字符串和数组)转换为false,并将任何负值,undefined,null或false转换为true。 !!应用两次。

在此上下文中,如果变量userId存在并且不为空,空或假,它将返回true。

0

它只是喜欢你改变变量的类型为布尔

!! userId; 

// same as 

userId ? true:false;