React-Native:js ==与===区别(两个等号与三个等号)

最近在项目遇到一个bug,code码返回成功(“0”)的时候页面是可以展示,code码不对(“2012”)的是页面没有按照我写的code的码的处理来展示了。很是郁闷。最后跟踪了一下问题,发现后台返回的code码是string类型的,前端定义的是number类型的。但是问题就是,code码正确的时候为什么能展示了呢?

最后一步步跟踪,发现原来是==和===的区别。。。。我去。。。。
真的是抓狂哇!!!!
错误代码的处理

if (json.code != 0) {
                    throw { code: json.code, msg: json.message };
                }
return json.model;
 if (error.code === 2012) {//
进行code码错误的特许处理
  .....
  }
这两段代码的重点在于 code != 0 和code === 2023的区别了

在code返回的是'0'的时候 表达式code !=0 是false,返回了数据model ,因为==之间的比较是先转化成同一类型后再看值相不相等 ,但是code === 2012的表达式 是false ,所以没有进行我写的错误处理。因为===如果类型不同,则结果就不等了。原来原因就是。。。这里。这就能解释为什么了。。。代码坑。。。

下面对==和===的区别做一个全部的解释
1、对于string,number等基础类型,==和===是有区别的

1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
2)同类型比较,直接进行“值”比较,两者结果一样

2、对于Array,Object等高级类型,==和===是没有区别的

进行“指针地址”比较

3、基础类型与高级类型,==和===是有区别的

1)对于==,将高级转化为基础类型,进行“值”比较
2)因为类型不同,===结果为false

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,713评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,029评论 19 139
  • 2017.12.18 前几天说的重大事件是:2017年,我们的团队拿到合伙人最高级别第18名。可以上台领奖了,嘎嘎...
    潘语阅读 1,436评论 1 7
  • 人生中所有痛苦的事情,总有一天我们都会微笑着讲出来。 世间所有的一切,都源于一场场遇见。冷遇见暖,就有了雨;冬遇见...
    小妖21阅读 1,607评论 0 0
  • 【与萌共长】20171222学习力践行Day73读海底小纵队,英语打卡,读牛4本,读了日有所诵几个儿歌,找到以前买...
    艳萍和萌宝阅读 832评论 0 0

友情链接更多精彩内容