您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页Javascript 中的 “==“ 与 “===“

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。

为什么使用 ===

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务