"== " 和 "=== "运算符使用于比较两个值是否相等。都允许任意类型的操作数,若操作数相等则返回true,否则返回false。
" ===" : 严格相等运算符(恒等运算符),用来检测两个操作数是否严格相等。【包含字面值和类型】;
" ==" : 相等运算符,“相等”的定义比较宽松,可以允许类型转换。
" =" : “得到或者是赋值”,
JavaScript中对象的比较是应用的比较,而不是值的比较。对象和自身是相等的,和其他任何对象不想等。不论两个对象具有相同的数量的属性、相同的属性名和属性值,依然相等。相应位置的数组元素相等的两个数组也不相等。
恒等运算符 “===”先计算自身的操作数的值,在比较两个值,比较中没有类型的转换:
1、两个值的类型不相同,则它们不相等;
2、两个值都是null或者都是undefined,则它们不相等;
3、两个值都是布尔值true或者都是false,则它们相等;
4、其中一个为NaN,或者两个都为NaN,则它们不相等;
相等运算符 “==”的比较不严格,若两个操作数是不同类型,则在比较过程中会进行一些类型的转换后再比较: