俗话说:临阵磨枪,不快也光。对于成功的编程面试来说,准备和知识面一样重要。准备使你有信心参加面试,而不用担心莫名的紧张情绪。如果第一次参加编程面试,这一点尤其重要。
为帮助 Node.js 开发人员更好的面试,列出了 15 个常见的 Node.js 和网络开发相关的面试问题。
在本文中,我们将重点讨论 Node.js 相关问题。但是,请记住 JavaScript 问题在 Node.js 面试中也经常问到,所以准备一些对你来说没什么坏处。
现在,让我们深入了解面试中可能会问到的 Node.js 问题。
1、Node.js与JavaScript有什么不同?
2、什么时候用Node.js?
Node.js 是异步的、事件驱动的、非阻塞的和单线程的,使得它成为开发下面应用程序的完美候选:
实时应用程序,如聊天和提供实时更新的应用程序。
将视频或其他多媒体内容流式传输给大量观众的流式应用程序。
其他 I/O 密集型应用程序,如协作平台。
遵循微服务架构的网络后端。
然而,Node.js 的特性使得它对于其他类型的应用程序来说不是一个理想的选择。执行 CPU 密集型任务的应用程序(如复杂的数学计算)在使用 CPU 时表现不佳,因为 Node.js 是单线程的。
3、EventEmitter做了什么?
Node.js 中任何对象发出的事件都是 EventEmitter 类的实例,就像 http 模块。
所有 EventEmitter 类都可以使用 eventEmitter.on() 函数将事件侦听器附加到事件。然后一旦捕捉到这样的事件,就会同步地逐个调用它的侦听器。
const events = require("events");
const eventEmitter = new events.EventEmitter();
const eventListener = function(){
console.log("event triggered");
}
eventEmitter.on("emitted", eventListener);
eventEmitter.emit("emitted");
4、事件循环是什么?
单线程的 Node.js 必须是非阻塞的,以防止线程阻塞在需要很长时间才能完成的任务上,事件循环负责实现这种非阻塞行为&