Node.js面试题及答案 - [ Web技术面试题及答案 ]

Node.js是服务器端脚本,用于构建可伸缩程序。 它是基于Google Chrome的JavaScript引擎构建的Web应用程序框架。 通过阅读下面Node.js面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固Node.js知识。

1. Node.js是什么?

Node.js是服务器端脚本,用于构建可伸缩程序。 它是基于Google Chrome的JavaScript引擎构建的Web应用程序框架。 它在Mac OS,Windows和Linux上的Node.js运行时内运行,无需更改。 此运行时可以帮助您在浏览器外的任何计算机上执行JavaScript代码。详细答案>>

2. Node.js可以免费使用吗?

是。 它是在MIT许可下发布的,可以免费使用。

详细答案>>

3. Node是单线程应用程序吗?

是的。 Node是一个带有事件循环的单线程应用程序。

详细答案>>

4. Node.js的使用目的是什么?

这些是Node.js的以下使用目的:

  • 构建实时Web应用程序
  • 网络应用
  • 分布式系统
  • 通用应用程序
详细答案>>

5. Node.js有哪些优点?

以下是Node.js的主要优点: Node.js是异步和事件驱动的。 Node.js库的所有API都是非阻塞的,其服务器不等待API返回数据。 它在调用之后移动到下一个API,并且Node.js事件的通知机制响应来自先前API调用的服务器。Node.js非常快,因为它建立在Google Chrome的V8 JavaScript引擎上。 它的库在代码执行方面非常快。Node.js是单线程但高度可扩展的。Node.js提供了无缓冲的功能。 它的应用从不缓冲任何数据。 它以块的形式输出数据。详细答案>>

6. 解释Node.js Web应用程序架构?

Web应用程序区分为4层: 客户端层:客户端层包含可以向Web服务器发出HTTP请求的Web浏览器,移动浏览器或应用程序。服务器层:服务器层包含Web服务器,它可以拦截客户端发出的请求并将响应传递给它们。业务层:业务层包含Web服务器用于执行所需处理的应用程序服务器。 该层通过数据库或一些外部程序与数据层交互。数据层:数据层包含数据库或任何数据源。 详细答案>>

7. 您对术语I/O有何了解?

I/O代表输入和输出。 它可以访问应用程序之外的任何内容。 一旦应用程序启动,它就会加载到机器内存中以运行程序。

详细答案>>

8. Node.js中有多少种类型的API函数可用?

Node.js中有两种类型的API函数:

  • 异步,非阻塞功能
  • 同步,阻塞功能
详细答案>>

9. 什么是错误优先回调?

错误优先回调用于传递错误和数据。 如果出现问题,程序员必须检查第一个参数,因为它总是一个错误参数。 其他参数用于传递数据。 fs.readFile(filePath, function(err, data) { if (err) { //handle the error } // use the data object }); 详细答案>>

10. 什么是异步API?

Node.js库的所有API都是异步的,意味着非阻塞。 基于Node.js的服务器永远不会等待API返回数据。 Node.js服务器在调用它之后移动到下一个API,并且Node.js事件的通知机制响应服务器以进行先前的API调用。详细答案>>

11. 怎么能避免回调?

要避免回调,可以使用以下任一选项: 可以使用modularization。 它将回调分解为独立的函数。可以使用promises。可以将yield与Generators和Promises一起使用。详细答案>>

12. Node.js是否提供调试器?

是的,Node.js提供了一个简单的基于TCP的协议和内置的调试客户端。 要调试JavaScript文件,可以使用debug参数,后跟要调试的js文件名。 语法: node debug [script.js | -e "script" | <host>:<port>] 详细答案>>

13. 什么是控制流函数?

控制流函数是在几个异步函数调用之间运行的通用代码。

详细答案>>

14. “控制流”如何控制函数调用?

控制流程执行以下工作:

  • 控制执行顺序
  • 收集数据
  • 限制并发
  • 调用程序中的下一步
详细答案>>

15. 是否可以访问Node中的DOM?

不可以,无法访问Node中的DOM。

详细答案>>

16. 使用事件循环可以异步完成哪些类型的任务?

使用事件循环可以异步完成以下类型的任务:

  • I/O操作
  • 繁重的计算
  • 任何需要阻止的东西
详细答案>>

17. Node.js中的REPL是什么?

REPL代表Read Eval Print Loop。 它指定了一个计算机环境,如窗口控制台或Unix / Linux shell,可以在其中输入命令,计算机将使用输出进行响应。

REPL环境与Node.js合并。

详细答案>>

18. 解释Node REPL中使用的术语的任务。

以下是REPL中使用的术语及其定义的任务: Read:它读取用户的输入; 将输入解析为JavaScript数据结构并存储在内存中。Eval:它采用并评估数据结构。Pring:用于打印结果。Loop:它循环上面的命令,直到用户按两次ctrl-c终止。详细答案>>

19. 是否可以使用Node REPL评估简单表达式?

是的。可以使用Node REPL评估简单表达式。

详细答案>>

20. REPL中下划线变量的用途是什么?

在REPL中,下划线变量用于获取最后的结果。 C:\Nodejs_WorkSpace>node > var x = 10 undefined > var y = 20 undefined > x + y 30 > var sum = _ undefined > console.log(sum) 30 undefined > 详细答案>>

21. Node.js是否支持加密?

支持/Node.js Crypto模块支持加密。 它提供加密功能,包括一组用于打开SSL哈希HMAC,密码,解密,签名和验证功能的包装器。 例如: const crypto = require('crypto'); const secret = 'abcdefg'; const hash = crypto.createHmac('sha256', secret) .update('Wel...详细答案>>

22. 什么是npm? npm的主要功能是什么?

npm代表节点包管理器。 以下是npm的两个主要功能: 可在search.nodejs.org上搜索的node.js包/模块的联机存储库用于安装软件包的命令行实用程序,对Node.js软件包进行版本管理和依赖关系管理。详细答案>>

23. 可以使用哪些工具来确保Node.js中的一致样式?

以下是可用于开发团队代码,强制执行给定样式指南以及使用静态分析捕获常见错误的工具列表。

  • JSLint
  • JSHint
  • ESLint
  • JSCS
详细答案>>

24. 操作错误和程序员错误有什么区别?

操作错误不是错误,但会导致系统出现问题,例如请求超时或硬件故障。 另一方面,程序员错误是实际的错误。

详细答案>>

25. 依赖关系的全局安装和依赖关系的本地安装之间有什么区别?

全局安装依赖项存储在/npm目录中。 虽然本地安装依赖项存储在本地模式下。 这里的本地模式是指node_modules目录中的软件包安装,该目录位于Node应用程序所在的文件夹中。无法直接在Node应用程序中使用require()导入全局部署的程序包。 另一方面,可以通过require()访问本地部署的包。要全局安装Node项目,请使用-g标志。C:Nodejs_WorkSpace>npm install express ?g 要在本地安装Node项目,语法为:C:Nodejs_WorkSpa...详细答案>>

26. Node.js中缓冲类的用途是什么?

Node.js提供Buffer类来存储类似于整数数组的原始数据,但对应于V8堆外部的原始内存分配。 它是一个全局类,可以在应用程序中访问而无需导入缓冲区模块。 使用Buffer类是因为纯JavaScript与二进制数据不兼容。 因此,在处理TCP流或文件系统时,必须处理八位字节流。详细答案>>

27. assert在Node.js中的作用是什么?

Node.js Assert是一种编写测试的方法。 除非有人失败,否则在运行测试时不提供任何反馈。 assert模块提供了一组简单的断言测试,可用于测试不变量。 该模块供Node.js内部使用,但可以通过require('assert')在应用程序代码中使用。 例如: var assert = require('assert'); function add (a, b) { return a + b; } var expected = ...详细答案>>

28. Node.js中的流是什么?

Streams是便于您从源读取数据并将数据写入目标的对象。 Node.js中有四种类型的流: 可读:此流用于读取操作。可写:此流用于写入操作。双工:此流可用于读取和写入操作。变换:它是一种双工流,输出根据输入进行计算。详细答案>>

29. 什么是Node.js中的事件驱动编程?

在Node.js中,事件驱动编程意味着一旦Node启动其服务器,它就会启动其变量,声明函数然后等待事件发生。 与其他类似技术相比,这是Node.js相当快的原因之一。详细答案>>

30. Node.js中的事件和回调有什么区别?

虽然,事件和回调看起来很相似,但差异在于,当异步函数返回其结果时调用回调函数,而事件处理对观察者模式起作用。 每当事件被触发时,其侦听器函数就会开始执行。 Node.js通过events模块和EventEmitter类提供了多个内置事件,EventEmitter类用于绑定事件和事件侦听器。详细答案>>

31. Node.js中的Punycode是什么?

Punycode是一种编码语法,用于将Unicode(UTF-8)字符串转换为ASCII字符串。 它与Node.js v0.6.2及更高版本捆绑在一起。 如果要将其与其他Node.js版本一起使用,请先使用npm安装Punycode模块。需要使用require('punycode')来访问它。 语法: punycode = require('punycode'); 详细答案>>

32. Node.js TTY模块包含什么?

Node.js TTY模块包含tty.ReadStream和tty.WriteStream类。 在大多数情况下,无需直接使用此模块。需要使用require('tty')来访问此模块。 语法: var tty = require('tty'); 详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。