Web前端进阶面试题(含详细真实面试向答案).docxVIP

  • 2
  • 0
  • 约9.75千字
  • 约 13页
  • 2026-07-03 发布于河北
  • 举报

Web前端进阶面试题(含详细真实面试向答案).docx

Web前端进阶面试题(含详细真实面试向答案)

一、JavaScript核心进阶

1.讲讲你对闭包的理解?实际项目中用过哪些场景,有什么优缺点?

答案:

简单来说,函数嵌套函数,内部函数能访问外部函数的变量,就算外部函数执行完毕销毁,内部函数依旧可以保留并使用外部的变量,这个组合就是闭包。底层原理是JS的作用域链,内部作用域可以向上访问外层作用域,反之不行。

实际项目常用场景:

封装私有变量:模拟私有属性,避免全局变量污染,比如工具类方法封装;

防抖、节流函数:缓存定时器、上次执行时间等变量;

循环绑定事件:早期ES5没有let/const时,解决for循环事件绑定变量共享问题;

柯里化函数:拆分多参数函数,实现参数缓存。

优缺点:

优点:实现变量私有化、缓存数据、拆分函数逻辑;

缺点:闭包会让外部函数的变量常驻内存,无法被GC回收,容易造成内存泄漏;如果滥用,会增加内存占用。

2.ES6var/let/const的区别?从底层原理说说暂时性死区

答案:

1.作用域:var仅支持函数作用域和全局作用域,不具备块级作用域;let、const支持块级作用域,大括号{}内单独生效;

2.变量提升:三者都存在变量提升,但表现不同。var提升后初始值为undefined,可以声明前调用;let/const提升后不会初始化,声明前无法调用;

3.重复声明:var允许同

文档评论(0)

1亿VIP精品文档

相关文档