布尔值为零

时间:2014-10-24 18:52:46

标签: javascript

我有以下JavaScript / jQuery代码:

if (isVariance && value)
    tableCell.addClass('NonZeroVariance');

其中:

isVariance == truevalue == "0.00"

(isVariance && value) == "0.00"

(isVariance && !!value) == true

if条件的计算结果为true,并且该类已添加到tableCell

所以,我的期望是零被解释为假,而"0.00"将被评估为false。但这不是这里发生的事情。有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:2)

是的,似乎value是一个字符串。虽然数字0.00将评估为false,但字符串"0.00"的计算结果为true。

解决方案是首先将字符串转换为数字,然后执行相同的测试。

value = Number(value);
if (isVariance && value)
    tableCell.addClass('NonZeroVariance');

修改

字符串"0.00"的计算结果为true的原因是:如果参数为空String(其长度为零),则结果为false;否则结果是真的。 - http://javascriptweblog.wordpress.com/2011/02/07/truth-equality-and-javascript/