Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,专为构建高性能、可扩展的网络应用而设计。其核心特性是采用事件驱动和非阻塞 I/O 模型,能够轻松处理高并发连接。 Node.js 打破了 JavaScript 只能运行在浏览器的限制,让 JavaScript 具备了服务器端开发的能力。它被广泛应用于实时通信、聊天应用、在线游戏等场景,凭借轻量、高效的特性,成为前端全栈开发的核心工具。

HTML 5:用于定义和组织网页的结构,支持多媒体元素和语义化标签,优化页面结构与用户体验
CSS 3:用于页面样式设计,包含布局、颜色、字体、动画等能力,让网页外观更美观、交互更灵活
JavaScript:用于实现网页动态交互与逻辑行为,支持用户与页面实时互动,是前端核心开发语言


DOM:文档对象模型,以树形结构描述 HTML/XML 文档,提供 API 允许开发者动态操作页面内容、结构和样式
BOM:浏览器对象模型,提供窗口、历史记录、导航等对象,用于实现 JavaScript 与浏览器的交互
AJAX:异步 JavaScript 和 XML,实现页面无刷新的数据请求,完成前端与服务器的异步通信
浏览器执行 JavaScript 的完整流程:
HTML 解析器加载并解析页面,遇到 <script> 标签时,请求并下载 JS 文件
浏览器内置的 JavaScript 引擎(如 V8)解析、编译代码,生成可执行程序
借助事件循环与回调队列处理异步操作,保障代码非阻塞执行
JavaScript 调用 DOM/BOM API 操作页面,最终由渲染引擎更新页面展示

不同浏览器使用不同的 JavaScript 解析引擎,版本更新会带来引擎优化
Chrome 浏览器的 V8 引擎是目前性能最优的 JavaScript 引擎

JavaScript 本身不具备操作页面和浏览器的能力,浏览器提供了专属的内置 API,让 JS 可以调用 DOM、BOM 接口。 通过这些接口,JavaScript 可以修改文档结构、控制浏览器行为,实现动态交互的网页应用。
运行环境:代码能够正常执行所需的依赖、引擎、接口集合。 浏览器中的 JavaScript 运行环境包含两部分:
V8 引擎:核心模块,负责解析和执行 JavaScript 代码
内置 API:浏览器独有的接口(DOM、BOM、AJAX 等),只能在浏览器环境中调用

JavaScript 实现后端开发,必须依赖 Node.js 运行环境,这是前端全栈开发的基础。
统一技术栈:前后端统一使用 JavaScript,降低团队学习成本,支持代码复用
异步高性能:基于事件驱动、非阻塞 I/O 模型,高效处理高并发请求
完善生态:npm 拥有全球最大的包管理生态,海量第三方模块加速开发
轻量高效:启动速度快、资源占用低,适合微服务、快速原型开发
单线程限制:不擅长处理 CPU 密集型任务,大量计算会阻塞事件循环
生态成熟度:对比 Java、Python 等传统后端语言,部分领域工具链不够完善
回调地狱:早期异步代码嵌套过深,可读性差(可通过 Promise/async 解决)

Node.js 的核心优势场景:I/O 密集型应用(API 服务、实时通信、文件处理等)
Node.js vs Python(Django/Flask):Python 擅长科学计算、数据分析
Node.js vs Java(Spring Boot):Java 适合大型企业级、高稳定需求的系统
Node.js vs Ruby(Ruby on Rails):Rails 主打快速开发、约定大于配置
Node.js vs PHP:PHP 入门简单,在传统 Web 项目、虚拟主机场景使用广泛
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,专为构建高性能、可扩展的网络应用而设计。其独特之处在于采用了事件驱动和非阻塞 I/O 模型,使其能够轻松处理大量并发连接。Node.js 让 JavaScript 不仅可以在客户端运行,还能够在服务器端执行任务。广泛应用于实时应用程序的开发,例如聊天应用和在线游戏,Node.js 因其轻量且高效的特性而备受欢迎。
浏览器:JavaScript 的前端运行环境,提供 DOM/BOM API
Node.js:JavaScript 的后端运行环境,提供文件、网络、系统等 API
核心区别:Node.js 中无法调用 DOM、BOM 等浏览器专属 API
下图为 Node.js 运行环境:

Node.js 提供了底层的核心 API,基于这些能力,衍生出大量成熟的框架和工具: