前言:
在项目中老是使用 == ,但是很多情况下又使用的是 === 感觉缺少一个说服自己完全使用某一种的理由,所以来整理一份对比来增进理解;
整理结论:
== 值相等 代表相等,两边值类型不同的时候,要先进行类型转换,在比较
=== 类型和值都要相等 代表严格相等;严格等的特点是 :数值和类型都一样,用来进行严格的比较判断
此外:
1、对于string,number等基础类型,== 和=== 是有区别的
不同类型间比较,== 之比较“转化成同一类型后的值”看“值”是否相等,=== 如果类型不同,其结果就是不等
同类型比较,直接进行“值”比较,两者结果一样
2、对于Array,Object等高级类型,== 和 ===是没有区别的
3、基础类型与高级类型, == 和 ===是有区别的
对于 ==,将高级转化为基础类型,进行“值”比较,因为类型不同, === 结果为false