昨晚,我正在寻找AngularJS代码段来管理垂直标签菜单,但我发现了以下表达式:

if(+!!variableName)
  doSomething();


抱歉,我无法理解+!!variableName
如何解决这个条件表达式?

最佳答案

这基本上是说如果不是nullundefined

if(+!!variableName)
  doSomething();


如果variableName0,空(""),nullundefined,它将转换为falsetrue

例如,如果

var variableName = null;


现在,它将转换为(+!!null)-> (+!true)-> (+false)-> false

同样,如果

var variableName = "anything";


这将转换为(+!!"anything")-> (+!false)-> (+true)-> true

在这种情况下,+对结果没有影响,因此可以安全地将其删除。

实际上,整个条件表达式都可以替换为

if(variableName)
  doSomething();

关于javascript - 解释繁琐的条件表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35837425/

10-09 09:07