Javascript 中的 “==“ 与 “===“

==(相等操作符):它会比较两个值是否相等,但在比较之前会进行类型转换。如果两个值的类型不同,JavaScript 会尝试将它们转换为相同的类型,然后再比较。这种类型转换可能导致一些意想不到的结果。例如:

1 == '1'; // true
1 == true; // true
0 == false; // true
//这里的 == 运算符在比较时会进行类型转换,所以即使类型不同,也会返回 true。

===(严格相等操作符):它也用于比较两个值是否相等,但它不会进行类型转换。只有在两个值类型相同且值相等的情况下才会返回 true。例如:

1 === '1'; // false
1 === true; // false
0 === false; // false
//这里的 === 运算符在比较时会要求两个值的类型和值都相同,所以只有在严格相等的情况下才会返回 true。 

具体一点:

console.log(1 === 1);          // true(相同的类型和值)
console.log(1 === '1');        // false(不同的类型)
console.log('hello' === 'hello'); // true(相同的类型和值)
console.log(true === 1);       // false(不同的类型)
console.log(null === undefined); // false(不同的类型)
console.log(NaN === NaN);      // false(特殊情况:NaN 不等于 NaN)
console.log(0 === false);      // false(不同的类型)
console.log([] === []);        // false(不同的内存中的对象)
console.log({} === {});        // false(不同的内存中的对象)

总结

类型和值比较:=== 不进行类型转换,因此类型和值都必须相同才能返回 true。
== 的区别:另一方面, == 运算符在比较之前执行类型转换,这可能导致一些意外的结果。例如,1 == ‘1’ 返回 true,因为字符串 ‘1’ 在比较之前被转换为数字 1。

为什么使用 ===

避免类型转换的陷阱:使用 === 可以避免在 == 中出现的类型转换导致的意外结果。
可预测性:使用 === 进行比较更加可预测和直观,因为它不涉及隐式的类型转换。
为了编写更加可预测和清晰的代码,通常建议使用 === 而不是 == ,除非你有特定的原因需要允许类型转换。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小源同学r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值