JavaScript中==与===的区别

== 与 ===的区别

相等运算符(==)的几种情况说明:
一:如果一个操作数是null与undefined做比较时会返回true,而NaN与任何操作数做比较都会返回false,包括与自己做比较。
二:如果俩个操作数都是对象,则仅当俩个操作数都引用同一个对象时才会返回true否则都是false,而不是引用同一个对象的都会返回false 例如:
俩个对象的比较工作台第一个返回false 第二个返回true。
出现这个原因是因为:字面量是存储在栈内存,而对象是存储在堆内存。字面量的比较就是直接比较值而言,而对象的比较是比较它的内存地址。每创建一个对象,都会在堆内存开辟一个新空间,及它们有自己的物理地址。只有地址相同对象才会相同。

三:若俩个操作数进行比较时是不同的操作数,在比较之前会将他们转换成相同的类型包扣了如下的情况。
1:当数字与字符串比较时,会尝试将字符串转换成数字在比较。
2:如果操作数之一有boolean值,则会将它转换成0或1.
3:如果操作数之一是对象,而另一个是数组或者字符串。浏览器会尝试使用valueof()和toString方法转换对象后再进行比较
四:如果俩个操作是相同类型会进行如下比较
1:string:当且仅当俩个操作数字符串的顺序和数量相同时才会返回true
2:number:当且仅当俩个数字的大小以及数量相同才会返回true,此外+0与-0都会当做0来考虑

而严格等于(===)与相等运算符的最大区别就是不同类型的操作数进行比较时,浏览器是不会对操作数进行类型转换的。

如果有任何说的不对或者需要改进的地方都欢迎读者提出修改,感谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值