Web前端进阶面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约8.35千字
  • 约 11页
  • 2026-07-27 发布于河北
  • 举报

Web前端进阶面试题及详细答案(实战版).docx

Web前端进阶面试题及详细答案(实战版)

一、JavaScript进阶核心(高频必考)

1.讲讲闭包、使用场景、优缺点,项目中你怎么用的?

答案:简单说,函数嵌套内部函数,内部函数能访问外部函数的变量,且外部函数执行结束后,内部函数依然持有外部变量的引用,这就是闭包。核心本质是作用域链+变量引用不销毁。

使用场景:

封装私有变量:JS没有真正的私有属性,靠闭包实现变量私有化,外部无法直接修改

防抖、节流、定时器封装:保存定时器标识、延时回调的变量

循环绑定事件、异步回调保存当期循环变量

模块模式:早期无ES6Module时,用闭包实现模块化,防止全局变量污染

优缺点:

优点:隔离作用域、私有化变量、延长变量生命周期

缺点:容易造成内存泄漏,因为变量长期被引用无法被GC回收;滥用会增加内存开销

项目实战用法:我在项目里封装过通用的防抖节流工具函数,就是基于闭包保存定时器和上次执行时间;另外在封装弹窗组件时,用闭包存储内部状态,避免状态暴露在全局,防止外部篡改。

2.原型和原型链彻底讲清楚,new操作符做了什么?

答案:每个函数都有prototype(显式原型),每个实例对象都有__proto__(隐式原型),实例的__proto__指向构造函数的prototype。

原型链就是:对象查找属性/方法时,先在自身找,找不到就顺着__proto__往上找,直到Ototype

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档