1、npm 的作用
允许用户从 NPM 服务器下载别人编写的第三方包到本地使用
允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用
通过 NPM,你可以安装和管理项目的依赖,并且能够指明依赖项的具体版本号,可以通过
package.json 文件来管理项目信息,配置脚本
2、常用的 npm 指令有哪些
npm init 初始化
npm install 安装依赖
npm uninstall 卸载依赖
3、module.exports 和 exports 的区别
本质上是无区别的
最终暴露给外部的都是 module.exports, exports 只是 module.exports 的辅助工具, 他们是相
等的,所以既用 exports.xxx 也用 module.exports, 则之前的 exports.xxx 会被覆盖掉
4、为什么要进行模块化
目前前端的开发形势就是模块化和组件化;从软件工程学分析来说就是有了更好的可维护
性、可复用性等好处;但是前端的主要语言 js 在 ES6 之前却没有模块化功能,之前有使用 require.js 和 sea.js 但是推出 ES6 的模块化之后,ES6 的模块化使用形式基本统一
5、请介绍一下 require 的模块加载机制
这道题基本上就可以了解到面试者对 node 模块机制的了解程度
1、先计算模块路径
2、如果模块在缓存里面,取出缓存
3、加载模块
4、输出模块的 exports 属性即可
6、为什么Node.js是单线程的
Node.js 是作为异步处理的实验显式创建的。即在单个线程上进行异步处理,而不是通过不同框架进行缩放的现有基于线程的实现。
7、session 和 cookie 的作用
session 是区别于数据库存在的一种服务器临时存储技术, 它主要存储一些无需持久化的数
据, 比如临时的登录状态信息等
cookie 是存在于浏览器上的一种浏览器本地存储的方式, 同域名下的 cookie 不同标签页可
以共享, 默认过期时间是浏览器关闭时, 而且在进行 HTTP 请求时, 会自动带上浏览器全部
的 cookie 发给后台, 后台也可以获取 cookie, 设置可以在响应时, 向浏览器中设置 cookie。
8、Node.js和Ajax的区别
Node.js 和 Ajax 之间最基本的区别在于,Node.js 是服务器端 JavaScript,而 Ajax 是客户端技术。
9、说一下事件循环 eventloop
1、所有同步任务都在主线程上执行,形成一个执行栈
2、当主线程中的执行栈为空时,检查事件队列是否为空,如果为空,则继续检查;如不为
空,则执行 3
3、取出任务队列的首部,加入执行栈
4、执行任务
5、检查执行栈,如果执行栈为空,则跳回第 2 步;如不为空,则继续检查
10、node 和 前端项目怎么解决跨域的
设置 CORS 或者 使用使用 CORS 模块
11、什么是前后端分离的项目
前端 HTML 页面通过 Ajax 调用后端的 RESTFUL API 接口并使用 JSON 数据进行交互
12、事件的订阅和发布的设计模式是什么
其实就是收集事件名, 对应的方法体, 当触发对应事件名时, 把事件名对应的所有方法体
调用执行一遍