后端开发人员(Node)的热门面试问题

2025-05-24

后端开发人员(Node)的热门面试问题

介绍

作为一名全栈开发人员,我也曾应聘过后端开发人员的职位。在这篇文章中,我将分享除 DSA 部分之外,所有面试中我遇到的最常见的后端开发问题。

Q1. 使用 Async/Await 创建一个睡眠函数。

在下面的例子中,sleep 函数返回一个承诺,该承诺在给定的毫秒后使用 setTimeout API 解决。

Javascript 引擎如何工作?

当 js 文件运行时,

  1. 创建全局执行上下文。

  2. 所有变量(带有 var 关键字)和函数(箭头函数除外)声明的地方都会创建一个内存堆。

    下图中我们可以看到,变量a的声明甚至在执行尚未开始的情况下就完成了。
    图像

  3. 创建一个调用堆栈来存储将要执行的行。
    图像

  4. 调用堆栈获得一个函数调用时,它会创建一个功能上下文,并在功能上下文中重复该过程。

  5. 调用栈遇到setTimeout/Interval/Immediate等WEB API时,这些API会被发送到回调队列,待调用栈为空后再进行处理。

  6. 调用栈遇到Promise时,它会被发送到微任务队列(优先级高于回调队列)以便在调用栈为空后进行处理。

  7. 一旦调用堆栈为空,事件循环就会将函数从队列移动到调用堆栈进行执行。

单线程和异步之间的区别。

我的观点:
单线程 -> 意味着每次只能执行一个函数。
异步 -> 意味着函数执行的非阻塞。

下图中,我们可以轻松理解其中的区别。感谢Baeldung

图像

图像

阅读更多

如何调试缓慢的 API?

我的观点:

Console.log 方法

  1. 通过从不同的网络发送请求来检查问题是否出在网络上。
  2. 记录后端收到请求的时间。
  3. 记录数据库查询之前的时间。
  4. 记录数据库查询后的时间。
  5. 记录一些繁重操作之前/之后的时间。
  6. 发送响应之前记录时间。
  7. 分析一下时间,你就会找到罪魁祸首。

剖析器方法

使用任何分析工具来检查执行滞后的地方。

NodeJS 中的 EventEmitter 是什么?

我的观点:EventEmitter 用于在 JS 中创建事件监听器。

阅读更多:

通过LinkedinGithubTwitterYoutube联系我😇

文章来源:https://dev.to/abhishekraj272/top-interview-questions-for-backend-developers-node-2133
PREV
前端开发人员(React)的热门面试问题
NEXT
学习这些很棒的 Javascript 概念。