Js比较数值大小为何会出现结果相反的一幕

Js比较数值大小为何会出现结果相反的一幕

对于很多后端或者刚接触前端的人来说,很容易在数值比较上出现错误。这就是雷坑了!!!这里我直接进行举例,清晰的让大家明白:
例如前端Js获取数值进行比较时,if( this. ( " i d 1 " ) . g e t v a l u e ( ) > t h i s . ("id1").getvalue() > this. ("id1").getvalue()>this.(“id2”).getvalue ){ alert(“hello”) } ,这时候我们假设id1的数值为3,id2的数值为21。按照常理来说id1一定小于id2,这时候页面也一定是不会出现弹窗。但是神奇的是,你会发现页面会弹窗。这是为什么?
这里我们就要讲到的是html语言它的逻辑并非是像后端一样。而是用逻辑与/非来参考还有的是用四个特殊字符表示一个符号。这个时候我们发现 大于、小于、等于在js中出现,如果这个value的数值是String类型或者是Ascii时候,就会出先逻辑与现象。也就是说代码就变成了 if( this.KaTeX parse error: Expected 'EOF', got '&' at position 20: …1").getvalue() &̲gt; this.(“id2”).getvalue ){ alert(“hello”) } 。这个时候就会发现值的比较就是 3和2 进行比较,所以就会产生这个。
这个在二次开发中比较常见,如只能获取接口但不知道数据类型时候。
那我们该如何解决呢???那就是eval()方法,转换为逻辑非,这时候就是数值3和21的比较。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值