相等运算符运算规则,解释[]==[],[]==![],{}=={},{}==!{}

发布时间:2024-11-22 15:40

了解运费规则:查看是否包邮,运费如何计算。 #生活常识# #购物消费建议# #网购技巧#

相等运算符的运算规则如下: 

 1、如果两个值类型相同,进行 === 比较。

(ps:[]==[] ,{} == {}类型相同,进行===比较,所在地址不同,所以返回false)

 2、如果两个值类型不同,他们可能相等。

根据下面规则进行类型转换再比较: 

(1)如果一个是null、一个是undefined,那么[相等]。 

(2)如果任一值是字符串,另一个值是数值,在比较相等性之前先将字符串转换为数值;即调用Number()函数。 

(3)如果任一值是布尔值,在比较相等性之前先将其转换为数值,即是调用Number()函数。 

(4)如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。 js核心内置类,会尝试valueOf先于toString;但Date利用的是toString转换。

(ps: [] == ![]  !优于 ==  所以转换为 [] == false --> [] == 0 --> ''==0  所以返回true)

(ps: {} == !{} --> {} == false --> {} == 0 --> [object Object] == 0 所以返回false)

补充:

不同类型对象的valueOf()方法的返回值

对象返回值Array返回数组对象本身。Boolean布尔值。Date存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。Function函数本身。Number数字值。Object对象本身。这是默认情况。String字符串值。 Math 和 Error 对象没有 valueOf 方法。

所以 [] 和 {} 的valueOf方法都返回对象本身,所以用toString() 方法

转载于:https://juejin.im/post/5d0a06516fb9a07eee5ed222

网址:相等运算符运算规则,解释[]==[],[]==![],{}=={},{}==!{} https://www.yuejiaxmz.com/news/view/193440

相关内容

Python :=海象运算符最简单的解释
用PHP中的 == 运算符进行字符串比较
【巧填运算符号:3333=73333=8=】
【从零开始的c/c++之旅】运算符“++” x=x++的雷坑!!!
0.9999……=1? 无限循环小数能否进行四则运算?
python时间运算
四数问题下逻辑运算符的注意事项
戴尔计算机的常规维护准则
指针的 运算
定义运算a⊕b=a(1

随便看看