25 个最常见的 Node.js 面试问题及答案 (PDF)
面向新人的 Node js 面试问题和答案
1)什么是node.js?
Node.js 是一种用于构建可扩展程序的服务器端脚本。它比其他服务器端语言具有多项优势,其中最突出的是非阻塞 I/O。
2)node.js如何工作?
Node.js 在 v8 环境中运行,它是一个利用 JavaScript 作为其脚本语言,并通过非阻塞 I/O 和单线程事件循环实现高输出。
3)您所说的“I/O”是什么意思?
I/O 是输入和输出的简写,它可以访问应用程序之外的任何内容。一旦应用程序启动,它将被加载到机器内存中以运行程序。
4)事件驱动编程是什么意思?
在计算机编程中,事件驱动编程是一种编程范式,其中程序的流程由事件(例如来自其他程序或线程的消息)决定。它是一种应用程序架构技术,分为两个部分:1) 事件选择 2) 事件处理。
5)我们可以在哪里使用node.js?
Node.js 可用于以下目的。
- Web 应用程序(尤其是实时 Web 应用程序)
- 网络应用程序
- 分布式系统
- 通用应用
6)使用node.js有什么好处?
- 它提供了一种构建可扩展网络程序的简便方法
- 一般很快
- 大并发
- 异步一切
- 几乎从不阻塞
7) Node.js 中有哪两种类型的 API 函数?
Node.js 中的两种 API 函数类型是
- 异步、非阻塞函数
- Sync同步、阻塞函数
8)什么是控制流功能?
在几个异步函数调用之间运行的通用代码称为控制流函数。
9)解释“控制流”如何控制函数调用的步骤?
- 控制执行顺序
- 收集数据
- 限制并发
- 调用程序的下一步
10)为什么Node.js是单线程的?
对于异步处理,Node.js 是作为一项实验而创建的。人们相信,在典型的 Web 负载下,在单个线程上进行异步处理可以实现比典型的基于线程的实现更高的性能和可扩展性。
面向资深专业人士的 Node js 面试问题及答案
11)node可以在windows上运行吗?
是的,确实如此。从以下网址下载 MSI 安装程序 https://nodejs.org/download/
12)你能在节点中访问 DOM 吗?
不,您无法在节点中访问 DOM。
13)使用事件循环应该异步完成哪些任务?
- 输入输出操作
- 繁重计算
- 任何需要阻挡的事情
14)node.js为何迅速受到JAVA程序员的关注?
Node.js 很快就引起了人们的关注,因为它是一个基于循环的服务器 Java脚本。Node.js 允许用户编写 Java服务器上的脚本可以访问 HTTP 堆栈、文件 I/O、TCP 和 数据库.
15)async.queue 接受哪两个参数?
async.queue 接受的两个参数
- 任务功能
- 并发值
16) Node.js 中的事件循环是什么?
为了处理外部事件并将其转换为回调调用,需要使用事件循环。因此,在 I/O 调用时,node.js 可以从一个请求切换到另一个请求。
17)请提及在 Node.js 中异步的步骤?
通过以下步骤你可以异步 Node.js
- 第一类函数
- 函数组合
- 回拨计数器
- 事件循环
18)Node.js 的优点和缺点是什么?
优点:
- 如果你的应用程序没有任何 CPU 密集型计算,你可以将其构建在 Javascript 从上到下,甚至深入到数据库级别,如果你使用 JSON 存储对象 DB,例如 MongoDB.
- 爬虫会收到完整呈现的 HTML 响应,这比在 Node.js 上运行的单页应用程序或 websockets 应用程序更加有利于 SEO。
缺点:
- 任何密集的 CPU 计算都会阻碍 node.js 的响应,因此线程平台是更好的方法。
- 在 Node.js 中使用关系数据库被认为不太有利。
19)Node.js 如何克服 I/O 操作阻塞问题?
Node.js 通过将基于事件的模型置于其核心来解决此问题,使用事件循环而不是线程。
20)Node.js 和 Ajax 有什么区别?
Node.js 和 Ajax 之间的区别在于,Ajax(异步的缩写) JavaScript 和 XML)是一种客户端技术,通常用于在不刷新页面的情况下更新页面内容。而 Node.js 是服务器端的 Javascript,用于开发服务器软件。Node.js 不是在浏览器中执行,而是由服务器执行。
针对 5 年以上经验的 Node.js 面试问题
21)Node.js 面临哪些挑战?
强调技术方面,在 Node.js 中,一个进程和一个线程在多核服务器上进行扩展有点挑战。
22)node.js 中的“非阻塞”是什么意思?
在 node.js 中,“非阻塞”意味着它的 IO 是非阻塞的。Node 使用“libuv”以与平台无关的方式处理其 IO。在 Windows 上,它使用完成端口;在 Unix 上,它使用 epoll 或 kqueue 等。因此,它会发出非阻塞请求,并在收到请求后将其排队在事件循环中,从而调用 Java在主程序中编写“回调”脚本 Java脚本线程。
23) node.js 中用于导入外部库的命令是什么?
命令“require”用于导入外部库,例如“var http=require (“http”)”。这将通过http变量加载http库和单个导出的对象。
24)请提及 node.js 中最常用的框架?
“Express” 是 node.js 中最常用的框架。
25) node.js 中的‘回调’是什么?
回调函数用于 node.js 处理对服务器的多个请求。例如,如果您有一个大文件,服务器需要很长时间才能读取,并且您不希望服务器在处理其他请求时读取该大文件,则可以使用回调函数。回调函数允许服务器首先处理待处理的请求,并在完成后调用函数。
这些面试问题也会对你的口试有帮助