3年经验前端面试题(含详细接地气答案).docxVIP

  • 0
  • 0
  • 约7.8千字
  • 约 11页
  • 2026-07-26 发布于河北
  • 举报

3年经验前端面试题(含详细接地气答案).docx

3年经验前端面试题(含详细接地气答案)

一、JS核心基础(3年必问,侧重踩坑和实战)

1、讲讲var/let/const的区别,实际开发中怎么用?

参考答案:

首先var是函数作用域,let、const是块级作用域,这是最核心的区别。

var存在变量提升,而且可以重复声明,很容易污染全局变量,我现在项目里基本不用。比如循环嵌套的时候,var定义的变量会互相干扰,之前踩过这个坑。

let可以修改值,不能重复声明,有暂时性死区,必须先声明再使用,适合定义会变更的变量,比如表单状态、计数器。

const定义的是常量,指针不能改,基础类型值不可变,引用类型可以改内部属性。项目里优先用const,只有确定变量会变才用let,完全弃用var,这是团队统一规范。

2、闭包是什么?开发中用过哪些场景,有什么坑?

参考答案:

简单说,函数嵌套函数,内部函数访问外部函数的变量,就形成了闭包,核心是保留了外部作用域的变量引用。

我实际开发常用场景:

1、防抖、节流函数,通过闭包保存定时器、上一次执行时间;

2、封装私有变量,比如工具函数、组件内部缓存数据,不暴露到全局;

3、定时器、异步回调里保留当前循环的变量值,解决循环变量统一赋值的问题。

最大的坑就是内存泄漏,闭包会一直持有变量引用,导致垃圾回收机制无法销毁变量。比如组件挂载时创建的闭包定时器,卸载时没清除,就会

文档评论(0)

1亿VIP精品文档

相关文档