跟着《深入浅出nodejs》系统学习 node 以及相关面试题一网打尽

本文围绕《深入浅出nodejs》一书,总结了node.js的面试题,涵盖模块机制、事件循环、发布订阅等核心概念,以及npm、ESM、commonjs的区别等内容,旨在帮助读者巩固理论知识和实践经验。
摘要由CSDN通过智能技术生成

本篇文章跟着《深入浅出 nodejs》这本书整理一下,关于 node 的面试题目,总所周知,这本书是一个很经典的,很多大佬都推荐的学习 node 的书,可以通过下面的链接获取电子版。

链接: https://pan.baidu.com/s/1x8qKck7KxnceSuK3f6i67A 提取码: q979

但是这篇文章还是主要整理面试题为主,通过面试题目,你会发现原来有些内容在《深入浅出 nodejs 》这本书里面都有提到!

不瞒你说, 我在买了这本书之后看过一次,但是完全看不懂,就是一直处于一种似懂非懂的状态,直到有了一些项目经验,又重新看了一遍,才有点理解了。【虽然还是不全面】

本篇文章主要目的是自我总结和学习,可能内容有疏漏或者错误,欢迎指出,多多见谅!

一、基础知识

1.1 认识 node

首先在开始之前,针对新手小白,一定要先弄懂 node 是什么,请看这篇文章

1.2 安装 node

书里面貌似没有告诉你怎么使用 node,可以参考这篇文章,使用 nvm 工具来安装和管理node

可以说,现在基本上所有的前端开发都是基于 node 进行的,更多实践的项目可以参考我的这个专栏《前端工程化系统教程》,有详细的讲解。

二、面试题目

我个人任务 node 相关的面试题目主要还是以理论知识为主,也就是传说中的八股文,代码相关有一个重点就是事件循环。

我们来看一下《深入浅出nodejs》的目录,主要分为下面几点,我把我认为比较重要的标红强调了一下,但是不完全准确,仅供参考

  1. 模块机制【第二章】
  2. 事件循环【第三章】
  3. 发布订阅【第四章】
  4. 垃圾回收【第五章】
  5. Buffer【第六章】
  6. 网络编程【第七章】
  7. web应用【第八章】
  8. 进程相关【第九章】
  9. 测试相关【第十章】
  10. 前端工程化【第十一章】

下面,我们跟着个目录来依次总结一下对应的面试题目,争取一网打尽!!我会先总结重要的章节,剩余的持续补充中

我承认有的时候我的网织得太稀疏了~~~

2.1 模块机制

书中提到 commonjs 是一个规范,并详细说明了指定这个规范的原因(13页)。

所以我们需要知道其实不管是 commonjs 还是 esm 都是一个规范,他不是隶属于 node 的,node 是对 commonjs 规范进行了实现,虽然面试题我给他归类到 node 里面了,但是这点不要混淆,也可以把他归类到 js 相关的里面。

2.1.1 commonjs 和 es module 的区别是什么?

2.1.2 node 的文件路径分析和查找策略

2.1.3 node 中的常用的核心模块都有哪些,对应的有哪些常用的方法

2.1.4 npm 是什么

2.1.5 node 中的全局对象有哪些

2.2 事件循环

2.2.1 node / 浏览器中的事件循环机制

2.2.2 微任务队列的优先级

2.2.3 node 中的 nextTick 和 vue 中的 nextTick 的区别

2.3 发布订阅

在《深入浅出nodejs》的第三章提到了高阶函数,这就不的不提到一个很重要的面试题,函数的柯里化。

高阶函数:把函数作为参数,或者函数作为返回值的函数就是高阶函数

柯里化:可以被视为一种特殊形式的高阶函数,因为它接受一个函数作为输入,并返回一个函数作为输出。

2.3.1 函数柯里化

2.3.2 实现发布/订阅模式

还有一个和发布订阅,容易搞混的就是观察者模式,所以要注意区分

2.3.3 实现观察者模式

2.3.3 发布订阅模式和观察者模式的区别

2.4 垃圾回收

首先看需要垃圾回收的原因,是因为有内存泄漏

2.4.1 会造成内存泄漏的原因

关于内存泄漏的一个原因就是闭包,所以就不得不巩固一下闭包的知识。

2.4.2 什么是闭包

2.4.3 v8 引擎的垃圾回收机制

还有一个尾调用优化,没错我在面试过程中确实遇到过这个问题

2.4.4 什么是尾调用优化

2.5 Buffer 

【待更新】

2.6 网络编程

这块主要还是计算机网络相关的知识,请参考这篇《一网打尽计算机网络/浏览器工作原理

2.7 web应用

2.7.1 说说你对 restful 规范的理解

2.8 进程相关

2.8.1 进程和线程的区别

提到进程就不得不提到浏览器的多进程模型

2.8.2 浏览器的多进程模型

2.9 测试相关

2.10 前端测试的方法和工具

2.10 前端工程化

2.10.1 说说你对前端工程化的了解

一提到前端工程化的问题,关于 webpack 的问题一定是必须问的,同样的和 webpack 类似的打包工具也必须要知道,详细的整理,请看这篇文章。一定要看!!特别是关于 webpack 和 vite 的。

总结

内容持续更新中,内容较多难免疏漏,有不对的欢迎指正,有遗漏的部分会陆续补充。

欢迎关注我的专栏《一网打尽所有面试题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值