今天你用 === 了吗?

今天遇到了一个bug,也顺便见识了JS这门语言的可怕之处。。。

事情的起因是这样,有一行代码类似如下:

var code = response.result;
if (code) {
    console.error('异常')
}

code 是rpc的返回值,明明服务端没有任何问题,但是客户端一直报错,结果定位到代码的时候发现服务端错误的把返回类型转成了string,而 JS 中,if (‘0) 是成立的;类似的问题还有:

'true' == true // false
[] == ![] // true
...

等等奇葩的操作,如果不知道为什么,可见ECMA规范11.9.3节,也有人整理出来这样的一张图:
这里写图片描述

看了上面的图,不得不说真的是辣眼睛,据说JS这门语言当年只用了一周开发,我现在是有点相信的。想要避开这个问题我们在开发中尽量用 === 代替 ==

盆友,今天你 === 了吗?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值