前端Js后端传的值为0与字符串比较会返回true的问题

导读:本篇文章讲解 前端Js后端传的值为0与字符串比较会返回true的问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

今天写项目后端回调的数据传递值value=0传递过来,(0==’’)比较值返回为true

在这里插入图片描述
原因:
当类型不一致会被类型转换成一直的类型进行比较。
此处,将0和 ’ ’ 均转换成Boolean类型,所以相等。
在这里插入图片描述
解决:
使用===来进行比较
在这里插入图片描述

=== 判断规则

1.如果类型不同,就[不相等]
2.如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是 NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3.如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4.如果两个值都是true,或者都是false,那么[相等]。
5.如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6.如果两个值都是null,或者都是undefined,那么[相等]。

== 判断规则:
1.如果两个值类型相同,进行 === 比较。
2.如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
3.如果一个是null、一个是undefined,那么[相等]。
4.如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
5.如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
6.如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
7.任何其他组合,都[不相等]。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83870.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!