前端有趣面试题及详细答案.docxVIP

  • 1
  • 0
  • 约5.08千字
  • 约 6页
  • 2026-05-22 发布于河北
  • 举报

前端有趣面试题及详细答案

一、基础趣味题(必问,考察基础功底)

1.题目:为什么说“typeofnull===object”是JS的一个bug?如何正确判断一个值是不是null?

答案:

首先明确:这确实是JS设计初期的一个历史bug,不是逻辑错误,而是底层编码的小疏忽。

底层原理:JS在最初设计时,用32位二进制来存储值的类型信息,其中最低3位(标记位)用来表示类型——000表示对象(object)、001表示数字、010表示字符串、100表示布尔、110表示undefined。而null的二进制表示是全0,最低3位也是000,所以typeof检测时,会误判为object。

正确判断null的两种常用方式(面试常考,推荐第二种):

①严格相等判断(最直接):value===null,因为null只有和自身严格相等,和undefined宽松相等(null==undefined为true),严格相等可以精准区分。

②排除法(更严谨,避免误判):typeofvalue===objectvalue!==null,先判断是对象类型,再排除null,适合用于判断“非null的对象”场景。

补充:面试时可以调侃一句“这个bug因为影响太大,一直没修复,毕竟很多老代码依赖这个特性”,能体现你对JS历史的了解,更显自然。

2.题目:用一行代码实现“数组去重”

文档评论(0)

1亿VIP精品文档

相关文档