字符串为零的JavaScript比较运算符
JavaScript comparative operator with string zero
f
是true
,r
是"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
任何非空字符串都是"truthy"。如果你知道这个值应该看起来像一个数字,你可以强制转换:
var r = +$('input[name="myradio"]:checked').val();
一元+
运算符强制将字符串转换为数字,并且数字0
不是"truthy"。
如果值是而不是数字,则数字转换将产生NaN
,并且它与0
一样是false
。
相关文章:
- 字符串为零的JavaScript比较运算符
- JavaScript 比较运算符中的不一致
- 使用空数组时比较运算符 JavaScript 的奇怪行为
- 比较运算符 !== 与 0
- 比较运算符在 javascript 中的数组上比较什么
- 将 JavaScript 比较运算符与变量一起使用
- 有没有办法使比较运算符成为变量
- JavaScript 比较运算符不起作用
- JavaScript 比较运算符未正确评估用户输入
- 我以前从未见过的比较运算符
- 链接数学比较运算符时javascript的奇怪行为
- 在条件中使用逻辑运算符和比较运算符(javascript)
- 使用“”对字符串进行排序;小于/大于“;比较器中的比较运算符
- 比较运算符-大于或等于-不工作
- Javascript 比较运算符 != vs !==.
- jQuery/Javascript的比较运算符"==="和“= =”
- JavaScript布尔表达式中的多个比较运算符
- Javascript:使用逻辑运算符和比较运算符
- js中的比较运算符.erb文件
- Javascript比较运算符顺序