- 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.题目:用一行代码实现“数组去重”
您可能关注的文档
最近下载
- 小学语文:2025年北京市西城区四年级(下)期末语文试卷含答案.pdf VIP
- 称重EXP24260D2用户手册(三点).doc VIP
- 矿山生态修复技术规范 第2部分:煤炭矿山.pdf VIP
- 棉花的种子生产.ppt VIP
- 2025年山东济南市中考数学真题试题(含答案).docx VIP
- 通用简约表格通用简历模板.docx VIP
- 满6个月读后感:长江读书会的底层逻辑.docx VIP
- 深度解析(2026)《SJT 11666.4-2016制造执行系统(MES)规范 第4部分:接口与信息交换》.pptx VIP
- 小学数学:2005年北京市西城区四年级(下)期末数学试卷含答案.pdf VIP
- DB43 968-2021工业废水铊污染物排放标准.docx
原创力文档

文档评论(0)