个性化阅读
专注于IT技术分析

别错过哦!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的以下目的:

  • 实时网络应用
  • 网络应用
  • 分布式系统
  • 通用应用

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浏览器, 移动浏览器或可以向Web服务器发出HTTP请求的应用程序。
  • 服务器层:服务器层包含Web服务器, 该Web服务器可以拦截客户端发出的请求并将响应传递给他们。
  • 业务层:业务层包含应用服务器, Web服务器利用该应用服务器执行所需的处理。该层通过数据库或某些外部程序与数据层进行交互。
  • 数据层:数据层包含数据库或任何数据源。
Node.js 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)如何避免回调?

为避免回调, 可以使用以下任一选项:

  • 你可以使用模块化。它将回调分为独立的函数。
  • 你可以使用诺言。
  • 你可以将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代表读取评估打印循环。它指定了一个计算机环境, 例如窗口控制台或Unix / Linux shell, 你可以在其中输入命令, 然后计算机以输出作为响应。

REPL环境与Node.js合并。


18)解释节点REPL中使用的术语的任务。

以下是REPL中定义的任务中使用的术语:

读取:读取用户的输入;将输入解析为JavaScript数据结构并存储在内存中。

评估:获取并评估数据结构。

打印:用于打印结果。

循环:循环上述命令, 直到用户两次按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加密模块支持加密。它提供了加密功能, 其中包括用于开放SSL的哈希HMAC, 加密, 解密, 签名和验证功能的一组包装器。例如:

const crypto = require('crypto');  
    const secret = 'abcdefg';  
    const hash = crypto.createHmac('sha256', secret)  
                       .update('Welcome to srcmini')  
                       .digest('hex');  
    console.log(hash);

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

npm代表节点软件包管理器。以下是npm的两个主要功能:

  • 可在search.nodejs.org上搜索的node.js软件包/模块的在线存储库
  • 命令行实用程序, 用于安装软件包, 执行Node.js软件包的版本管理和依赖关系管理。

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

以下列出了可用于在团队中开发代码, 实施给定的样式指南并使用静态分析捕获常见错误的工具。

  • 杰林特
  • JSHint
  • ESLint
  • JSCS

24)操作错误和编程错误之间有什么区别?

操作错误不是错误, 而是给系统造成了诸如请求超时或硬件故障之类的问题。另一方面, 程序员错误是实际的错误。


25)全局安装依赖项和本地安装依赖项有什么区别?

  • 全局安装的依赖项存储在 / npm目录。而本地安装的依赖项以本地模式存储。这里, 本地模式是指位于Node应用程序所在文件夹中的node_modules目录中的软件包安装。
  • 无法使用Node应用程序中的require()直接导入全局部署的程序包。另一方面, 可以通过require()访问本地部署的程序包。
  • 要全局安装Node项目, 请使用-g标志。
  • 要在本地安装Node项目, 语法为:

26)Node.js中的缓冲区类有什么用?

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


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

Node.js声明是一种编写测试的方法。除非测试失败, 否则运行测试时不会提供任何反馈。断言模块提供了一组简单的断言测试, 可用于测试不变式。该模块供Node.js内部使用, 但可以通过require(‘assert’)在应用程序代码中使用。例如:

var assert = require('assert');  
    function add (a, b) {  
      return a + b;  
    }  
    var expected = add(1, 2);  
    assert( expected === 3, 'one plus two is three');

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

流是可帮助你从源读取数据并将数据写入目标的对象。 Node.js中有四种类型的流:

  • 可读:此流用于读取操作。
  • 可写:此流用于写操作。
  • 双工:此流可用于读取和写入操作。
  • 转换:这是一种双工流, 其中输出根据输入进行计算。

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

在Node.js中, 事件驱动的编程意味着Node一旦启动其服务器, 便会初始化其变量, 声明函数, 然后等待事件发生。这是Node.js与其他类似技术相比非常快的原因之一。

Node.js事件1

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

尽管事件和回调看起来相似, 但不同之处在于以下事实:当异步函数返回其结果时, 将调用回调函数, 而事件处理则基于观察者模式。每当触发事件时, 其侦听器功能就会开始执行。 Node.js通过事件模块和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');

Java OOP面试问题
Java字符串和异常问题
JDBC面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题

Java基础面试问题

Java多线程问题

Java Collection面试题

Servlet面试问题

春季面试问题

PL / SQL面试问题

Oracle面试问题

SQL Server面试问题

赞(0) 打赏
未经允许不得转载:srcmini » 别错过哦!Node.js面试题和答案合集
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏