JavaScript比较运算符,字符串为零

时间:2015-03-26 14:26:06

标签: javascript jquery

ftruer"0",但比较结果为true。经过多次努力之后,我认为这是因为r是一个字符串,而不是布尔值或整数。处理这个问题的最佳方法是什么?

https://jsfiddle.net/nboeo0z2/

var r=$('input[name="myradio"]:checked').val();
var f = true;
console.log('r',r,'f',f,'test',(!f || r) ? true : false);

<input type="radio" value="1" name="myradio">Yes
<input type="radio" checked="checked" value="0" name="myradio">No

1 个答案:

答案 0 :(得分:8)

任何非空字符串都是&#34; truthy&#34;。如果你知道该值看起来像一个数字,你可以强制转换:

var r = +$('input[name="myradio"]:checked').val();

一元+运算符强制将字符串转换为数字,而数字0不是&#34; truthy&#34;。

如果值不是数字,则数字转换将产生NaN,而false0一样。< / p>