面试题总结

Posted zhaobao1830

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题总结相关的知识,希望对你有一定的参考价值。

一、== 和 === 有什么区别?

=== 就是判断两者类型和值是否相同。

对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换

  1. 首先会判断两者类型是否相同。相同的话就是比大小了
  2. 类型不相同的话,那么就会进行类型转换
  3. 会先判断是否在对比 null 和 undefined,是的话就会返回 true
  4. 判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
  5. 判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
  6. 判断其中一方是否为 object 且另一方为 stringnumber 或者 symbol,是的话就会把 object 转为原始类型再进行判断

闲着看一个面试题:

参考地址:https://blog.csdn.net/qiqi_77_/article/details/79456605

[]==[] // false 

俩边都是相同数据类型,直接比较大小。因为[]属于引用类型,俩个[]指向不同的堆内存,所以比较的结果为false

[]==![]

现在开始分析,!的优先级要大于==,先执行右边的![],![]=>false

之后就是比较[]==false

适用上面第5条规则:先把flase转换为0,,结果就是比较[]==0

然后适用第6条规则,[]转换为值,Number([]) = 0

所以0==0  结果胃true

 

以上是关于面试题总结的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题之手写promise

Vue3.0 的新特征 | Vue3.0 面试题总结

Java工程师面试题,二级java刷题软件

Java面试题总结

关于webpack的面试题总结

面试题总结2反转字符串的几种形式