我正在玩javascript,我想知道你是否可以做到 大于-1的值评估为true,-1和down的所有值评估为false?
现在1 == true
,如果你这样写的话,其他一切都等于假:
var i = 0;
if (i) {...} // I want this to be true
i = 1;
if (i) {...} // This is the only thing that is true
编辑:评价我的意思是我没有进行比较,例如0 > -1
。
我希望JavaScript将数字强制转换为布尔值。
答案 0 :(得分:1)
if ( i > -1 ) {
....
}
答案 1 :(得分:1)
不,你不能改变它,因为它构建了JavaScript ==
运算符强制类型之间的值的方式。
如果您有a loose equality expression(==
)其中一个操作数是布尔值(true
或false
)而另一个是数字,则JavaScript引擎将尝试将布尔值转换为数字并比较结果。 true
converts to 1
如果您尝试将其转换为数字,那就是1 == true
的原因。