- 0
- 0
- 约7.09千字
- 约 10页
- 2026-07-08 发布于河北
- 举报
前端P4级别面试题(含详细真实面试答案)
一、JavaScript核心基础(必考)
1.讲讲var、let、const的区别
参考答案:
首先是变量提升:var存在变量提升,声明前访问会返回undefined;let、const有暂时性死区,声明前直接访问会报错。
其次是作用域:var只有函数作用域和全局作用域,没有块级作用域;let、const支持块级作用域,if、for、{}内部声明的变量外部访问不到。
然后是重复声明:var允许重复声明变量;let、const同一作用域内不允许重复声明。
最后是赋值规则:let可以修改、不可以重复声明;const声明后必须赋值,且不能修改基础类型值,引用类型可以修改内部属性,只是不能修改指针地址。
日常开发中基本不用var,统一用let/const,默认优先const,需要修改再换let。
2.闭包是什么?有什么作用和弊端?实际项目用过吗?
参考答案:
闭包就是内层函数访问外层函数的变量,且外层函数执行结束后,内层函数依然保留对外层作用域变量的引用,不会被垃圾回收。
核心作用:一是实现变量私有化,避免全局变量污染;二是保存函数执行上下文,保留变量状态;三是可以做柯里化、防抖节流这类封装。
弊端:会导致变量常驻内存,无法及时销毁,滥用容易造成内存占用过高、内存泄漏。
项目场景:我封装过工具函数、防抖节流方
原创力文档

文档评论(0)