首发于丁哥开讲

Nodejs面试28题


Nodejs面试28题

大家好,这一期呢,我们来看一下nodjs的面试题。


第1题, 什么是nodejs?我们在哪里使用它?

Nodejs是服务器端的一门技术。它是基于Google V8 JavaScript引擎而开发的。用来开发可扩展的服务端程序。


第2题,为什么要使用node js?

nodejs会让我们的编程工作变得简单,它主要包含如下几点几个好处:


执行快速。

永远不会阻滞。

JavaScript是通用的编程语言。

异步处理机制。

避免并行所带来的问题。


第3题,nodejs有哪些特点?

是单线程的,但是有很高的可扩展性,使用JavaScript作为主流编程语言。使用的是异步处理机制和事件驱动。处理高效。


第4题, Set immediate和set time out 区别在哪里?

Set immediate就是马上执行的意思。Set time out, 时间参数传为0,也想获得同样的功能。只不过前者要快一些。


第5题,如何更新nodejs的版本?

npm install npm -g


第6题,为什么nodejs是单线程的?

Nodejs使用的是单线程没错,但是通过异步处理的方式,可以处理大量的数据吞吐量,从而有更好的性能和扩可扩展性。


第7题,什么是回调函数?

回调函数是指用一个函数作为参数传入另一个函数,这个函数会被在某个时机调用。


第8题, 什么叫做回调地狱?

回调地狱是由嵌套的回调函数导致的。这样的机制会导致有些函数无法到达,并且很难维护。


第9题,如何阻止回调地狱?

有三种方法, 对每个错误都要处理到, 保证代码的贯通, 程序代码模块化。


第10题,解释一下repl的作用?

Read evaluate print loop, 用于测试,调试和实验用。


第11题,API函数的类型有哪些?

有两种,

一种是阻滞型函数。阻滞型函数会等待操作完成以后再进行下一步。

另外一种是非阻滞型函数。这种函数使用回调函数来处理当前函数获取的结果。


第12题,回调函数的第1个参数是什么?

通常是错误对象。如果这个参数为空,表示没有错误。


第13题,NPM的作用是什么?

Node package manager, 主要有两个功能。

它是一个网端模块的存储介质。

它的另一个作用是安装程序依赖和版本管理。


第14题,nodejs和ajax的区别是什么?

Nodejs和ajax也就是asynchronous JavaScript and xml,都是通过JavaScript来表现的,但是他们的目的截然不同。


Ajax是设计用来动态的更新页面的某个区域,从而不需要更新整个页面。

Nodejs是用来开发客户服务器类型应用的。


第15题,解释一下nodejs中chaining.

Chaining是指从一个数据流到另一个数据流的链接,从而实现多个流操作。


第16题,什么是streams?解释一下有哪些类型?

流的概念是不间断的,它可以不间断的从某个地方读取数据,或者向某个地方写入数据。

有4种类型的流数据。可读,可写。既可读,又可写,转化。


第17题,退出代码是什么?有哪些退出代码?

退出代码是指中断nodejs运行时返回的代码。

有这么几种unused, uncaught fatal exception, fatal error, non function internal exception handler, internal exception handler run time failure,internal JavaScript evaluation failure.


第18题, 什么是globals?

有三个global的关键字。

Global代表的是最上层的命名空间,用来管理所有其他的全局对象。

Process 是一个全局对象,可以把异步函数转化成异步回调, 它可以在任何地方被访问,它主要是用来返回系统的应用信息和环境信息.

Buffer, 是用来处理二进制数据的类.


第19题, Angular js和node js的区别是什么?

Angular js是网络应用开发框架,而nodejs是一个实时系统。


第20题, 为什么统一的风格儿非常重要,有什么工具可以保证这一点?

统一的风格可以让所有的组成员按照一种规矩来写代码。工具有Standard和eslint.


第21题, 用什么方法来处理没有被处理的异常?

在应用和node js之间使用domain来处理这样的异常。


第22题, Node js是如何支持多处理器平台的?

Cluster模块是用来支持这方面的。它可以允许多个nodejs工作进程运行在相同的端口上。


第23题, 如何配置开发模式和生产模式的环境?

首先有一个配置文件,然后通过环境变量参数来获取对应的配置内容。


第24题, nodejs中跟时间相关的函数有哪些?

Set time out, clear time out.

Set interval, clear interval.

Set immediate, clear immediate.

Process.nextTick.


第25题, 解释一下什么是reactor pattern。

Reactor pattern主要是非阻滞的i/o操作。提供一个回调函数来关联io操作。io请求完成以后会不会提交给demultiplexer, 这是一个通知接口用来处理并发性的非阻滞的io操作,这个功能是通过查询一个event loop来实现的.


第26题,lts版本是什么意思?

也就是long term support版本。至少会被支持18个月。使用的是偶数来标识。这种版本有稳定性和安全性的保证。


第27题,你为什么需要把express APP和server分开?

分开以后方便维护以及测试,在测试某个模块的时候,尤其是APP模块的时候,你不需要去对网络方面的连接配置做工作。


第28题,next tick和setImmediate的区别是什么?

Next tick会等待当前的event执行完成或者下一轮儿事件循环到达再执行。

Set immediate, 会在下一轮的事件循环中,执行回调并且返回当前的循环来做读写操作.


码字不易,点个赞吧!


发布于 2019-09-07 03:23