Node.js 基础实战试题(含详细答案解析)_第1页
Node.js 基础实战试题(含详细答案解析)_第2页
Node.js 基础实战试题(含详细答案解析)_第3页
Node.js 基础实战试题(含详细答案解析)_第4页
Node.js 基础实战试题(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Node.js基础实战试题(含详细答案解析)适用人群:前端进阶、Node入门、实习/初级岗位笔试面试总分100分一、单项选择题(共10题,每题3分,共30分)1.以下关于Node.js说法正确的是?()A.Node.js是一门编程语言B.Node.js基于V8引擎,运行在服务端的JavaScript运行环境C.Node.js只能处理前端页面渲染D.Node.js不支持异步编程答案:B解析:Node.js不是语言,是JS的服务端运行环境;依托ChromeV8引擎,主打异步非阻塞I/O,用于服务端开发、接口开发、文件处理等,并非用于前端页面渲染。2.Node.js中全局对象是?()A.windowB.globalC.documentD.self答案:B解析:浏览器全局对象是window,Node.js全局对象为global;document、window都是浏览器专属API,Node环境不存在。3.以下不属于Node.js内置模块的是?()A.fsB.httpC.axiosD.path答案:C解析:fs、http、path均为Node原生内置模块,可直接引入使用;axios是第三方网络请求库,需要npm安装。4.Node.js事件循环的宏任务不包含以下哪种?()A.setTimeoutB.setIntervalC.Promise.thenD.I/O回调答案:C解析:Promise.then、async/await属于微任务;setTimeout、定时器、文件I/O、网络I/O回调属于宏任务,微任务执行优先级高于宏任务。5.关于module.exports和exports说法错误的是?()A.默认情况下exports和module.exports指向同一个对象B.直接赋值exports={}不会生效C.module.exports是最终导出的内容D.exports可以完全替代module.exports答案:D解析:exports是module.exports的引用,重新给exports赋值会断开引用,无法导出内容,最终导出以module.exports为准,不能完全替代。6.path.resolve()的作用是?()A.拼接相对路径B.解析并返回绝对路径C.获取文件扩展名D.规范化路径分隔符答案:B解析:path.resolve()基于当前执行目录,解析生成绝对路径;path.join()用于拼接路径,不会自动转为绝对路径。7.Node.js中读取文件内容,一次性读取全部文件的方法是?()A.fs.createReadStreamB.fs.readFileC.fs.readdirD.fs.stat答案:B解析:fs.readFile一次性读取完整文件内容;createReadStream是流式分段读取,适合大文件;readdir读取目录文件列表,stat获取文件信息。8.以下关于Node.js特点描述错误的是?()A.单线程、事件驱动B.非阻塞I/O,高并发C.适合CPU密集型任务D.适合I/O密集型接口服务答案:C解析:Node单线程特性,CPU密集型任务会阻塞事件循环,导致服务卡顿;优势是处理文件、网络请求等I/O密集型场景。9.http模块创建服务,监听请求的回调函数参数是?()A.req、resB.res、reqC.err、dataD.request、response答案:A解析:http.createServer((req,res)=>{}),第一个参数是请求对象req,第二个是响应对象res。10.process.cwd()的作用是?()A.获取当前文件所在目录B.获取当前命令执行的工作目录C.获取进程IDD.结束当前进程答案:B解析:__dirname获取当前文件目录;process.cwd()获取终端执行node命令的工作目录,二者场景不同。二、填空题(共5题,每题4分,共20分)1.Node.js中处理异步操作的三种常用方式:回调函数、______、______。答案:Promise、async/await2.流式读取文件的内置方法是fs.______,流式写入是fs.______。答案:createReadStream、createWriteStream3.事件循环中,微任务执行顺序______宏任务(填优先于/滞后于)。答案:优先于4.在Node中,______可以获取当前文件的绝对路径,______可以获取当前文件所在文件夹路径。答案:__filename、__dirname5.npm安装生产依赖的命令是______,安装开发依赖的命令是______。答案:npminstallxxx、npminstallxxx--save-dev三、简答题(共3题,每题10分,共30分)1.简单说下Node.js事件循环的执行流程答案解析:1.执行同步代码,同步代码优先级最高;2.清空所有微任务队列(Promise.then、queueMicrotask等);3.按照顺序执行宏任务队列:timers(定时器)>pendingcallbacks>idle/prepare>poll(I/O轮询)>check(setImmediate)>close回调;4.每执行完一个宏任务阶段,都会再次清空微任务队列,循环往复。核心口诀:同步优先、微任务清空、再跑宏任务,阶段循环。2.对比fs.readFile和文件流(stream)的使用场景区别答案解析:fs.readFile:一次性读取全部文件内容,将内容载入内存。适合小文件、配置文件、文本文件,代码简单易用;大文件会占用大量内存,容易造成内存溢出。Stream流:分段读取、分段处理数据,边读边写,内存占用极低。适合大文件上传下载、视频/日志文件处理、网络传输,是Node处理大文件的标准方案。3.CommonJS模块的加载机制是什么?答案解析:1.CommonJS是Node.js默认的模块规范,同步加载模块;2.模块第一次加载后会被缓存,后续重复require直接读取缓存,不会重复执行模块代码;3.模块导出依靠module.exports,导入依靠require();4.加载顺序:先加载内置模块>加载node_modules第三方模块>加载自定义相对路径模块;5.CommonJS导出的是值的拷贝,原模块值修改后,导入方不会同步更新。四、编程实操题(共1题,20分)题目:使用Node.js原生http模块,创建一个简易服务,满足以下需求:1.监听3000端口;2.访问根路径/返回文本:“HelloNode.js服务”;3.访问/api/list返回JSON格式数据{code:200,data:[1,2,3]};4.其他路径返回404提示“页面不存在”。标准答案代码:javascript

//引入原生http模块

consthttp=require('http');

//创建服务

constserver=http.createServer((req,res)=>{

//设置响应头编码,防止中文乱码

res.setHeader('Content-Type','text/html;charset=utf-8');

//根路径

if(req.url==='/'){

res.end('HelloNode.js服务');

}

//接口路径

elseif(req.url==='/api/list'){

//设置json响应头

res.setHeader('Content-Type','application/json;charset=utf-8');

res.end(JSON.stringify({

code:200,

data:[1,2,3]

}));

}

//404页面

else{

res.statusCode=404;

res.end('页面不存在');

}

});

//监听端口

server.listen(3000,()=>{

console.log('服务启动成功,访问地址:http://localhost:3000');

});

得分要点:1.正确引入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论