‘==’和‘===’,‘!=’和‘!==’到底有什么不一样?

 我本来对他们的印象只是,‘!==’和‘===’属于严格不等于,严格等于,另两个就是不严格呗。

后来有一天,我们后端领导帮我看程序,然后在一处条件语句那儿,写的非等于,“!=”是这个,我接手代码以后,悄摸改成了“!==”,后来他问我,有什么区别吗?

我当时没说个所以然,只是说了句习惯。

后来我查了一下,其实是js的一个隐式转换,根本是因为js在定义变量的时候,并没有为其限定数据类型,在使用过程中是存在变化的。

这里只展示一下简单的测试代码,后面跟着输出结果。

严格等于和严格不等于,是不会去改变数据类型的,而弱一点的,存在数据的隐式转换。 如下面字符串1和数字1比较输出结果在两种不同的等于号下,结果是不一样的。

还有一些其他的,可自行测试。

console.log('1' === 1) // false
console.log('1' == 1) // true
console.log('1' !== 1) // true
console.log('1' != 1) // false

console.log([] === '') // false
console.log([] == '') // true
console.log([] == true) // false

console.log(false == 0) // true
console.log(false === 0) // false
console.log(true === 1) // false

console.log(['1', '2'] === '1,2') // false
console.log(['1', '2'] == '1,2') // true

这里挂一个链接,是我在搜隐式转换的时候看见的,还不错,数据转换类型讲得挺细致的,可以看看,而且有代码有输出结果。

https://www.cnblogs.com/ihboy/p/6700059.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值