Values comparison

Values comparison

本文关键字:comparison Values      更新时间:2023-09-26
[4] === 4 // is: false
[4] == 4 // is: true
'0' == 0 // is: true
'0' === 0 // is: false

谁能给出确切的原因?严格相等运算符到底做什么或者需要什么来进行比较?我了解到类型对于strict(===)操作符应该是相同的。这是严格相等运算符检查的内容吗?如果是,那么相等运算符是如何工作的?

  • ==比较值
  • ===比较类型
例如

[4] //turns into "4" when comparing
"4" == 4 //They are the same
"4" === 4 //The values are the same, but not the type

参考:http://es5.github.io/x11.9.4

<引用类>https://i.stack.imgur.com/q13LO.png

===运算符也比较对象的type

那么,在[4] === 4

[4]是一个数组,但4是一个数字,因此计算结果为false。

'0' === 0

'0'是一个字符串,但0是一个数字,因此计算结果为false。

===运算符比较类型和值,使其成为更严格的检查。==操作符执行不太严格的基于值的检查。在某些情况下,它会认为不同类型的值"相等",例如0 vs"或0 vs"0"

==操作符会将0和"视为相等,而===操作符不会将它们视为相等,因为它们属于不同的类型。