JavaScript:变量是false但if语句是真的吗?

时间:2013-04-11 14:05:57

标签: javascript boolean

我有这个JS代码:

var show = elm.hasClassName('level0') ? false : true;
if(show) {
  doSomething()
}

我正在使用FireBug来检查show的值,它清楚地表明 false 。在调试时,我注意到无论如何都调用了doSomething函数。我错过了什么?

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

谢谢!

2 个答案:

答案 0 :(得分:2)

从您显示的任何代码(!!!),我相信您的调试是错误的。可能你看到了

的价值

elm.hasClassName('level0')  如 false

但是,var show = elm.hasClassName('level0') ? false : true;表示show将设置为elm.hasClassName('level0')

的倒数

只需在if条件上方添加alert(show)即可查看打印内容。看到这个小提琴http://jsfiddle.net/g4Zqp/1/它完全正常。

如果不是这种情况,则需要填写完整的代码

答案 1 :(得分:0)

试试这个

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