Node
Node.js 是什么
是一种应用程序,建立在 v8 引擎上面的应用程序,使 js 可以在上面运行
V8 引擎可以解析并运行 js 代码
node.js 里还包含文件系统读写、网络io、加密、文件压缩等
node 是用 js、c++、c语言编写的
浏览器和Node.js架构区别
Node.js 应用场景
- 前端开发库都是以 node 包的形式管理
- npm、yarn、pnpm 工具
- node.js 作为服务器,代理服务器
- 借助 node.js 完成前后端的同构应用
- 自身前端工程师为项目编写脚本工具
- electron 桌面应用程序
Node 安装
- LTS 版本(稳定)
- Current 版本(最新)
Node 版本工具 n/nvm
Node 输入、输出
- process.argv 为进城的全局对象,可以获取参数
Node —— REPL
- 交互式编程:node 直接回车
Node 常见的全局对象
- global(类似浏览器的 window 对象,区别:var 变量不会加在 global 里)
- module(特殊的全局对象:模块中的)
- exports(特殊的全局对象:模块中的)
- require(特殊的全局对象:模块中的)
- _ _ dirname:文件目录结构(特殊的全局对象:模块中的)
- _ _ filename:文件目录结构 + 文件名(特殊的全局对象:模块中的)
- buffer
- process:进程信息(nextTick)
- setTimediate
- setInterval
- setTimeout
全局对象 globalThis
node 全局对象 与 浏览器全局对象的区别?
- 浏览器中,全局变量都在 window 上,比如:document、setTimeout、alert、console等
- 在浏览器中执行 js 代码,在顶部通过 var 定义属性,会加到 window 对象上
- 在 Node 中有 global 属性
- node 中 var 定义变量只是在当前模块中有变量,不会放到全局中