JavaScript:变量为false,但语句是否为true?

JavaScript:变量为false,但语句是否为true?,javascript,boolean,Javascript,Boolean,我有这个JS代码: var show = elm.hasClassName('level0') ? false : true; if(show) { doSomething() } 我正在使用FireBug检查show的值,它清楚地指出false。在调试过程中,我注意到doSomething函数仍然被调用。我错过了什么 使用if(false)不会运行doSomething函数 谢谢 试试这个 if( !elm.hasClassName('level0')) { doSomething(

我有这个JS代码:

var show = elm.hasClassName('level0') ? false : true;
if(show) {
  doSomething()
}
我正在使用FireBug检查show的值,它清楚地指出false。在调试过程中,我注意到doSomething函数仍然被调用。我错过了什么

使用if(false)不会运行doSomething函数

谢谢

试试这个

if( !elm.hasClassName('level0')) {
  doSomething()
}

无论您显示了什么代码(!!!),我都认为您的调试是错误的。也许你看到了

elm.hasClassName('level0')
false

但是,
var show=elm.hasClassName('level0')?假:真表示
show
将设置为
elm.hasClassName('level0')的倒数。

只需在if条件上方添加一个
警报(显示)
,然后查看打印的内容。看这把小提琴,它非常好用


如果不是这样,您需要将完整的代码放入Try
var show=!elm.hasClassName('level0')
,这有什么区别吗?@Kolink1:同样的结果,它运行doSomething()…不需要三元运算符,只需直接使用hasClassName是的,更多的上下文代码就好了。。。他所描述的这种情况似乎是不可能的——一种矛盾——一种自相矛盾的心态?+1,确实如此。或者从代码中的其他地方调用他的
doSomething()
:-)