JS高频面试题及答案.docxVIP

  • 1
  • 0
  • 约2.27千字
  • 约 4页
  • 2025-10-16 发布于河北
  • 举报

JS高频面试题及答案

1.请解释原型链的概念,以及它在实际开发中的作用?

答案:

原型链是JS实现继承的核心机制。每个对象都有__proto__(隐式原型),指向其构造函数的prototype(显式原型);当访问对象属性时,若自身没有,会顺着__proto__向上查找,直到Object.prototype(原型链顶端),这个查找链条就是原型链。

实际作用:

实现代码复用:比如给Array.prototype添加自定义方法,所有数组实例都能直接调用(例:Array.prototype.myMap=function(){...});

实现继承:比如通过Child.prototype.__proto__=Parent.prototype让子类继承父类原型上的方法,避免重复定义;

注意点:避免直接修改原生对象原型(如Object.prototype),可能污染全局环境,引发冲突。

2.闭包是什么?实际开发中你用闭包解决过哪些问题?需要注意什么?

答案:

闭包是指函数能访问其定义时所在的作用域(外层作用域)的变量,即使函数在外部执行。本质是作用域链的保留。

实际应用场景:

封装私有变量:比如实现计数器(例:functioncreateCounter(){letcount=0;return()=count++;}),外部无法直接修改count;

防抖节流:比如输入框搜索防抖,用闭包保存定时器ID,避免每次触发都创建新定时器;

模块化:早期没有ES6Module时,用闭包包裹代码,暴露指定接口,避免变量污染全局(如(function(){...})())。

注意点:

内存泄漏风险:若闭包长期持有外部变量(如DOM元素),且不主动释放,可能导致内存无法回收;解决方式:使用完后将引用设为null(例:letelem=null);

性能影响:过度使用闭包会增加作用域查找开销,需合理场景使用。

3.请对比Promise、async/await和回调函数,说说它们的优缺点及使用场景?

答案:

三者都是JS处理异步的方式,核心是解决“回调地狱”(嵌套回调导致代码难维护)。

方式

优点

缺点

适用场景

回调函数

简单直观,原生支持

嵌套深时代码混乱(回调地狱)

简单异步场景(如setTimeout)

Promise

链式调用,解决回调地狱

无法中断,错误捕获需用catch

并行异步任务(如Promise.all)

async/await

同步代码风格,易读易维护

需配合try/catch捕获错误

复杂异步流程(如多接口依赖)

示例:

Promise链式调用:fetch(url).then(res=res.json()).then(data=console.log(data)).catch(err=console.log(err));

async/await:asyncfunctiongetDate(){try{constres=awaitfetch(url);constdata=awaitres.json();}catch(err){...}}。

4.事件循环(EventLoop)的机制是什么?请分析以下代码的执行顺序:

console.log(1);

setTimeout(()=console.log(2),0);

newPromise((resolve)={

console.log(3);

resolve();

}).then(()=console.log(4));

console.log(5);

答案:

事件循环是JS处理异步任务的核心机制,因为JS是单线程,需通过“主线程+任务队列”实现非阻塞:

同步任务优先在主线程执行,执行完后读取“微任务队列”;

微任务(Promise.then、process.nextTick等)全部执行完后,再读取“宏任务队列”(setTimeout、DOM事件等);

重复以上步骤,形成事件循环。

代码执行顺序:1→3→5→4→2

同步任务:console.log(1)、newPromise里的console.log(3)、console.log(5)先执行;

微任务:Promise.then(console.log(4))在同步任务后执行;

宏任务:setTimeout(console.log(2))在微任务全部执行后执行。

5.let、const和var的区别是什么?实际开发中你更推荐用哪两个?为什么?

答案:

三者都是声明变量的关键字,核心区别在作用域、变量提升、重复声明和赋值限制:

关键字

作用域

变量提升

文档评论(0)

1亿VIP精品文档

相关文档