先看一组示例
- var test = 1;
- var num = 1;
- var str = ‘1’;
- test == num //true 相同类型 相同值
- test === num //true 相同类型 相同值
- test !== num //false test与num类型相同,其值也相同,非运算所以是false
- num == str //true 这里相当于先把str强制转换为数字,再进行判断
- num != str //false “==” 的 非运算
- num === str //false 类型不同,直接返回false
- num !== str //true num 与 str类型不同 意味着其两者不等 非运算自然是true
总结
== 和 != 比较,若类型不同,则会先转换类型,再作值比较,最后返回值比较结果 。
而 === 和 !== 只有在相同类型下,才会比较其值。
来源:https://mkblog.cn/753/