确定两个变量是否相等在编程中是非常重要的一个操作,在比较字符串,布尔值,数字的时候还好用,不是很复杂,但是涉及比较对象的时候事情就会变得复杂了,最早的ECMAscript相等、不相等操作符在进行比较之前会先执行转换操作,把两个比较的变量转换为相同的类型,后来有人对这种比较方式提出了质疑,他的安全性到底如何?所以ECMAScript的解决方案是提供了两组比较操作符,相等&不相等、全等&不全等!
相等&不相等
这种比较操作符用(==)(!=)表示,在进行比较之前会进行强制类型转换操作,转换为两个相同的类型再进行比较,相等放回true,不相等返回false。
全等&不全等
这种比较操作符用(===)(!==)表示,不会进行任何转换,只是单纯的比较,如果两个不同类型的比较,那么会得到false。
tips
因为相等和不相等操作符会默默地进行强制类型转换,由于js的动态特性这很可能发生错误,所以推荐使用全等比较两个操作数是否相等更为安全。