前端面试 JavaScript— == 和 ===有什么区别?

Posted aiguangyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端面试 JavaScript— == 和 ===有什么区别?相关的知识,希望对你有一定的参考价值。

===叫做严格相等,是指:左右两边不仅值要相等,类型也要相等,例如'1'===1的结果是false,因为一边是string,另一边是number。

==不像===那样严格,对于一般情况,只要值相等,就返回true,但==还涉及一些类型转换,它的转换规则如下:

1. 两边的类型是否相同,相同的话就比较值的大小,例如1==2,返回false;

2. 判断的是否是null和undefined,是的话就返回true;

3. 判断的类型是否是String和Number,是的话,把String类型转换成Number,再进行比较;

4. 判断其中一方是否是Boolean,是的话就把Boolean转换成Number,再进行比较;

5. 如果其中一方为Object,且另一方为String、Number或者Symbol,会将Object转换成字符串,再进行比较;

console.log({a: 1} ==true);
// false
console.log({a: 1} =="[object Object]");
// true

 

以上是关于前端面试 JavaScript— == 和 ===有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题 之 JavaScript

前端面试准备2----Javascript中的Undefined和null小结

前端面试题

前端面试题关于JavaScript 这些你都会吗?

前端面试的面试经验

前端面试JavaScript插入排序