阿里前端高频面试题(含详细落地答案).docxVIP

  • 1
  • 0
  • 约6.1千字
  • 约 9页
  • 2026-08-20 发布于河北
  • 举报

阿里前端高频面试题(含详细落地答案).docx

阿里前端高频面试题(含详细落地答案)

一、JS核心基础(阿里必问)

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

详细答案:

首先核心区别就三点:作用域、变量提升、重复声明、修改规则。

var是函数作用域,存在变量提升,允许重复声明,赋值可修改。最大的问题是没有块级作用域,for循环定时器、条件判断里很容易出现变量泄露,开发中现在基本不用。

let和const是块级作用域({}内部有效),不存在变量提升(准确说是暂时性死区),不允许重复声明。

let可以后续修改值,const声明的是常量,基础类型不能改,引用类型(对象、数组)可以改内部属性,不能直接重新赋值。

业务落地规范:日常开发默认全部用const,只有变量需要重新赋值的时候再改成let,彻底不用var,规避变量污染问题。

2.什么是闭包?闭包的优缺点、业务场景、以及内存问题

详细答案:

简单说:内层函数访问外层函数的变量,并且内层函数被外部调用,就形成了闭包。核心是函数作用域不销毁,保留了外层的变量上下文。

常用业务场景:

1.做私有变量,比如封装工具方法,不暴露内部临时变量;

2.防抖、节流函数,保存定时器、上次执行时间;

3.循环绑定事件,保存每一次的循环变量;

4.柯里化函数、缓存结果函数。

优点:保留变量状态、实现私有化、缓存数据。

缺点:容易造成内存泄漏

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档