js中 == 和===的区别

在JavaScript中, == 和 === 都是用于比较两个值的运算符,但它们有一些区别。以下是它们的区别:

== 比较:

①== 会进行类型转换,然后再比较两个值是否相等。
②如果两个值的类型不同,== 会尝试将它们转换为相同类型,然后再进行比较。
③如果比较的两个值都是对象类型,那么会检查它们是否引用同一个对象。

===(严格相等)比较:

① === 不会进行类型转换。
②只有当两个值的类型和值都相等时,=== 才会返回 true,否则返回 false。
③如果比较的两个值都是对象类型,即使它们具有相同的属性和值,但它们引用的不是同一个对象,=== 也会返回 false。

简而言之,== 是非严格相等比较,会进行类型转换,而 === 是严格相等比较,不进行类型转换。

0 == false; // true,因为在比较时,false 被转换为数字 0
0 === false; // false,因为它们的类型不同

1 == '1'; // true,因为在比较时,字符串 '1' 被转换为数字 1
1 === '1'; // false,因为它们的类型不同

null == undefined; // true,因为它们的值都是无效的对象或未定义的
null === undefined; // false,因为它们的类型不同

{ name: 'John' } == { name: 'John' }; // false,因为它们引用的不是同一个对象
{ name: 'John' } === { name: 'John' }; // false,因为它们引用的不是同一个对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值