版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Node.js基础实操试题(含详细答案解析)适用人群:前端进阶、Node初学者、求职笔试练习考试时长:60分钟满分:100分一、单项选择题(共10题,每题3分,共30分)1.以下关于Node.js的说法,错误的是()A.Node.js是基于ChromeV8引擎的JavaScript运行环境B.Node.js只能运行在服务器端,浏览器无法运行C.Node.js采用单线程、事件循环机制处理请求D.Node.js内置模块无需下载,可直接require引入2.Node.js中用来读取本地文件的核心内置模块是()A.httpB.pathC.fsD.url3.以下不属于Node.js事件循环宏任务的是()A.setTimeoutB.Promise.thenC.setIntervalD.I/O操作4.在Node.js中,__dirname的作用是()A.获取当前执行命令的目录路径B.获取当前文件所在的目录绝对路径C.获取当前文件的完整绝对路径D.获取项目根目录路径5.Node.js搭建HTTP服务,用来监听客户端请求事件的是()A.createServerB.on('request')C.listenD.res.end6.关于Node.js模块系统,说法正确的是()A.自定义模块必须写绝对路径才能引入B.module.exports和exports完全等价,无区别C.模块加载后会被缓存,重复require不会重复执行代码D.Node.js优先加载内置模块,再加载第三方模块7.以下哪个方法可以异步读取文件内容()A.fs.readFileSyncB.fs.readFileC.fs.writeFileSyncD.fs.statSync8.npm命令中,npmixxx-S的作用是()A.安装开发环境依赖,写入devDependenciesB.安装生产环境依赖,写入dependenciesC.全局安装依赖D.卸载指定依赖包9.Node.js事件循环的执行顺序正确的是()A.微任务→同步代码→宏任务B.同步代码→微任务→宏任务C.同步代码→宏任务→微任务D.宏任务→微任务→同步代码10.解决Node.js回调地狱问题,最主流的方案是()A.嵌套更多回调函数B.使用var定义变量C.Promise+async/awaitD.使用全局变量二、填空题(共5题,每题2分,共10分)1.Node.js中开启一个HTTP服务,需要引入______模块。2.处理文件路径拼接、解析的内置模块是______。3.Node.js中微任务主要包含Promise、______(常见即可)。4.导出模块公共成员的核心语法是______。5.process.cwd()的作用是______。三、简答题(共4题,每题8分,共32分)1.简单说明Node.js单线程的优缺点。2.简述CommonJS模块的加载机制。3.说说fs模块同步和异步API的区别,日常开发优先用哪种?为什么?4.什么是回调地狱?如何解决?四、代码编程题(共2题,每题14分,共28分)1.基础服务搭建(14分)使用Node.js内置http模块,搭建一个简易服务器:1)监听3000端口;2)访问根路径/返回文本「首页:欢迎访问Node服务」;3)访问/about返回文本「关于我们:Node基础服务demo」;4)其他路径返回404页面提示「页面不存在」。2.文件操作实操(14分)使用fs异步API完成操作:1)判断当前目录下是否存在test.txt文件;2)如果不存在则创建文件,并写入内容「Node文件测试内容」;3)如果存在则读取文件内容并打印到控制台。参考答案及详细解析一、单项选择题答案解析1.答案:B解析:Node.js是服务端运行环境,不支持浏览器端运行,但并不是只能跑在服务器,本地电脑、虚拟机均可运行。B表述绝对化、错误。2.答案:C解析:fs(filesystem)是Node核心文件读写模块;http用于搭建服务,path处理路径,url解析地址。3.答案:B解析:Promise.then、async/await属于微任务;setTimeout、setInterval、文件I/O、网络I/O属于宏任务。4.答案:B解析:__dirname:当前文件所在目录绝对路径;__filename:当前文件完整路径;process.cwd():执行命令的目录。5.答案:B解析:createServer创建服务实例,on('request')监听客户端请求,listen绑定端口启动服务,res.end结束响应。6.答案:C解析:A错误,同目录自定义模块可直接写相对路径;B错误,直接赋值时exports会失效,module.exports是真正导出的对象;D错误,加载优先级:缓存>内置>第三方>自定义。7.答案:B解析:带Sync后缀的均为同步方法,不带Sync为异步回调方法。8.答案:B解析:-S/--save生产依赖(项目运行需要);-D/--save-dev开发依赖(仅开发打包需要);-g全局安装。9.答案:B解析:Node事件循环执行顺序:先执行所有同步代码,再清空所有微任务,最后执行一轮宏任务,循环往复。10.答案:C解析:多层回调嵌套会形成回调地狱,代码可读性、维护性极差,Promise扁平化+async/await异步同步化是主流解决方案。二、填空题答案1.http2.path3.process.nextTick(或queueMicrotask,答对即可)4.module.exports/exports5.获取当前执行node命令的目录路径三、简答题详细答案1.Node.js单线程的优缺点优点:①避免了多线程的线程竞争、锁机制问题,代码开发更简单;②内存占用低,上下文切换开销小;③基于事件循环异步非阻塞,处理高并发I/O请求性能优异。缺点:①单线程无法利用多核CPU资源;②遇到同步耗时代码(CPU密集型)会阻塞整个事件循环,导致服务卡顿;③单个线程报错会直接导致服务崩溃。2.CommonJS模块加载机制①CommonJS是Node.js默认的模块规范,运行时加载模块;②模块第一次被require引入时,会执行模块代码,并将导出结果缓存;③后续重复引入该模块,直接读取缓存,不会重复执行代码;④模块加载顺序:缓存>内置模块>node_modules第三方模块>自定义相对/绝对路径模块;⑤导出值为值拷贝,模块内部变量更新后,外部引入的值不会同步更新。3.fs同步与异步API区别及使用场景区别:①同步(带Sync):阻塞代码执行,必须等待文件操作完成才会执行后续代码,通过返回值获取结果,异常需try-catch捕获;②异步(不带Sync):非阻塞,不等待操作完成,后续代码直接执行,结果通过回调函数/Promise返回,不阻塞主线程。开发选择:优先使用异步API。原因:Node.js核心优势是异步非阻塞,同步API会阻塞事件循环,高并发场景下会导致服务响应变慢、卡顿,仅初始化阶段可少量使用同步API。4.回调地狱及解决方案回调地狱:多个异步操作存在先后依赖关系时,会层层嵌套回调函数,形成金字塔式代码,导致代码可读性极差、难以调试和维护。解决方式:①基础优化:拆分独立函数,减少嵌套;②主流方案:使用Promise扁平化异步代码,配合async/await将异步代码写成同步写法;③借助第三方异步库(如bluebird)。四、编程题参考答案(可直接运行)1.简易HTTP服务代码javascript
//引入内置http模块
consthttp=require('http');
//创建服务
constserver=http.createServer((req,res)=>{
//设置响应头编码,防止中文乱码
res.setHeader('Content-Type','text/html;charset=utf-8');
//路由判断
if(req.url==='/'){
res.end('首页:欢迎访问Node服务');
}elseif(req.url==='/about'){
res.end('关于我们:Node基础服务demo');
}else{
res.end('页面不存在');
}
});
//监听3000端口
server.listen(3000,()=>{
console.log('服务启动成功,访问:http://localhost:3000');
});2.fs异步文件操作代码javascript
constfs=require('fs');
constpath=require('path');
//拼接文件路径
constfilePath=path.join(__dirname,'test.txt');
//判断文件是否存在
fs.access(filePath,(err)=>{
if(err){
//文件不存在:创建并写入内容
fs.writeFile(filePath,'Node文件测试内容',(writeErr)=>{
if(writeErr){
console.log('文件写入失败:',writeErr);
}else{
console.log('文件创建并写入成功');
}
}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年湖南湘西土家族苗族自治州龙山县思源实验学校人教版下册一年级数学阶段学情自测卷【附答案】
- 2025~2026学年甘肃平凉市某校人教版第二册期末学业水平检测六年级数学【附答案】
- 2025-2026学年黑龙江省富锦市初中数学八年级期末上册自我评估高分特训题(详细参考解析)
- Photoshop职业技能等级考证模拟试题(含详细答案解析)
- 2026年电力调度员考试题及答案
- 强夯机司机安全操作规程
- 物流分拣线设备操作安全方案
- 贵州省黔东南州名校2027届数学八上期末统考模拟试题含解析
- 2025-2026学年山东省龙口市初中生物七年级期末上册高分通关高频易错题附答案
- Objective-C 高频面试题及详细答案(企业实战版)
- 2024-2025学年山东省聊城市东昌府区九年级(上)期中物理试卷(含答案)
- 04-家庭教育:3至12岁好习惯养成实操手册
- 2026年中国电信应届生校园招聘笔试真题(含详细答案解析)
- 电动机的正反转控制公开课
- 药品营销推广方案与市场分析报告
- 4.2 厘米和米(2)(教学课件) 人教版(2024)小学数学二年级上册
- 消防站建设项目环评报告
- 饲料化验检验试题
- 空调设备安装安全生产培训
- CJT 340-2016 绿化种植土壤
- 频率的稳定性省公开课一等奖新名师比赛一等奖课件
评论
0/150
提交评论