JS if("0")

Posted 北京王老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS if("0")相关的知识,希望对你有一定的参考价值。

说if("0")返回的是true,稍微有点基础的程序员都是认可的,因为有内容的字符串都是true,也很少有人因此犯低级错误。

if("0")
alert("哦哦");

但是如果0是由其他地方掉下来的,那情况就稍微复杂了,譬如在一堆选项里:[“0”,“1”,“2”,1,2,3]里面就可能会出现直接将if("0")当做true来处理的遗漏,因为你想当然认为给你的选项都是数字。看下面的例子:

<select class="form-select form-control" name="mode" id="mode" onchange="onConfigChange(this)">
<option value=0>NO</option>
<option value=1>YES</option>
</select>
<script>
function onConfigChange(ele)
var ele = document.getElementById("mode");
var index= ele.selectedIndex;
var mode = ele.options[index].value;
if(mode)
alert("YES");



</script>

你可能会觉得只有选到1时才会出现YES提示,而事实是无论你选哪个,都会出现YES提示。这是因为html规范里,select选项并不能直接返回给你一个数字,而是以字符串返回。

更多的时候,字符形式数字的来源不仅仅是网页dom里,从接口,从回调,从json值里等等,都可能返回给你字符串形式的“数字”。

除了在判断逻辑里,在使用这些值时也是要慎重对待的,因为数字和字符串在使用上毕竟差别万千,不管实在低级语言里,还是在类型不是很敏感的高级语言里。

以上是关于JS if("0")的主要内容,如果未能解决你的问题,请参考以下文章

Vuejs IF 语句

MessageEmbed 字段值可能不为空错误

js 小数计算为啥和想象中不一样!

js中 && 与 || 的妙用

JS数字计算精度误差的解决方法

js null undefined 真的等于false吗