JavaScript相等操作符(==)

2020-07-28  本文已影响0人  春风本是人间客

参考:
链接1
链接2
链接3

两组操作符

相等:==(先转换再比较)
全等:===(仅比较不转换)

相等(==)规则

Boolean规则:Boolean(val):如果有一个操作数是Boolean值,则在比较前先将其转换为数值——false0true1
String&Number规则:Number(string):如果一个是String,一个是Number,则先将String转为Number
Object规则:valueOf(obj):如果有一个是对象,则调用valueOf方法(数组调toString()方法)。

image

问题探讨

[] == []; // false
{} == {}; // false
[] == ![]; // true
{} == !{}; // false

[] == []{} == {}是因为引用的对象指向不同的指针,所以不会相等。

一、[] == ![]

简化:
[] == ![] 转化:[] == false 转化: [] == 0 转化'' == 0 转化: 0 == 0

二、{} == !{}

简化:
{} == !{} 转化:{} == false 转化:true == false

上一篇下一篇

猜你喜欢

热点阅读