JavaScript:变量为false,但语句是否为true?
我有这个JS代码: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(
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条件上方添加一个警报(显示)
,然后查看打印的内容。看这把小提琴,它非常好用
如果不是这样,您需要将完整的代码放入Tryvar show=!elm.hasClassName('level0')
,这有什么区别吗?@Kolink1:同样的结果,它运行doSomething()…不需要三元运算符,只需直接使用hasClassName是的,更多的上下文代码就好了。。。他所描述的这种情况似乎是不可能的——一种矛盾——一种自相矛盾的心态?+1,确实如此。或者从代码中的其他地方调用他的doSomething()
:-)