今天为大家输出Node.js相关面试题和相关答案,温故而知新可以为师矣,一起加油加油加油!
,这些函数就是。 还有许多其他编程语言,例如 scala、Haskell 等,包括 JS。 现在因为这个函数可以),或者(高阶函数)。 map() 和 filter() 是常用的高阶函数。
Node.js 是一个并运行 Chrome 的 V8 JavaScript 引擎的。 基本上,,使其轻量且高效。 它也被用于开发桌面应用程序以及一个名为 electron 的流行框架,因为它提供了 API 来访问 OS 级别的功能,例如文件系统、网络等。
由于节点有一个,可用于以作,而。 因此,例如,如果需要进行一些网络调用,它将被安排在事件循环中,而不是主线程(单线程)中。 如果有多个这样的 I/O 调用,每个调用都会(除了主线程)。 因此,。
Node.js 是作为的实验显式创建的。 这是为了尝试一种新的理论,即,而不是通过不同框架进行缩放的现有基于线程的实现。
主循环是单线程的,所有异步调用都由 libuv 库管理。
有两种类型的 API 函数:
它可以由许多软件包安装程序及其相应的配置文件进行管理。 其中大多使用 。两者都提供了几乎所有的 javascript 库,具有控制特定环境配置的扩展功能。 为了维护项目中安装的库版本,我们使用 以便将该应用程序移植到不同的环境中没有问题。
这用于实现代码执行的延迟。
这用于多次运行代码块。
作为 setImmediate() 参数传递的任何函数都是 在事件循环的下一次迭代中执行的回调。
setImmediate 和 process.nextTick 似乎都在做同样的事情;但是,根据回拨的紧迫性,您可能更喜欢其中之一。
使用 Promise 的主要优点是您可以获得一个对象来决定异步任务完成后需要采取的操作。 这提供了更易于管理的代码并避免了回调地狱。
通常,fork 用于生成子进程。 在 node 中,它用于创建一个新的 v8 引擎实例来运行多个 worker 来执行代码。
这用于公开要在项目其他地方使用的特定模块或文件的功能。这可用于将所有类似功能封装在一个文件中,从而进一步改进项目结构。 例如,您有一个包含所有 utils 函数的文件,使用 util 来获取问题陈述的不同编程语言的解决方案。
因此使用 module.exports 我们可以在其他文件中使用这些函数:
ESLint 可以与任何 IDE 一起使用,以确保一致的编码风格,这进一步有助于维护代码库。
对于上面的示例,我们正在传递回调函数,它使代码不可读且不可维护。 因此我们应该更改异步逻辑以避免这种情况。
无论是异步的,都由事件循环使用队列和侦听器进行管理。我们可以使用下图得到这个想法:
到此这篇node 面试题(node面试问题)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!因此,当需要执行异步函数(或 I/O)时,主线程将其发送到不同的线程,从而允许 v8 继续执行主代码。 事件循环涉及具有特定任务的不同阶段,例如计时器、挂起的回调、空闲或准备、轮询、检查、关闭具有不同 FIFO 队列的回调。 同样在迭代之间,它会检查异步 I/O 或计时器,如果没有则干净地关闭。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-nodejs/76984.html