2025

159 posts

JavaScript 语法技巧

> 这里记录了很多JavaScript的神奇技巧,会持续更新. 解构赋值语法是一种允许你将数组或对象中的数据“解压”到独立变量中的表达式。 > 把解构想象成你收到了一个“礼品篮”(对象或数组)。你不需要整个篮子,你只想拿出其中的几样东西(属性或元素),并给它们分别贴上标签(变量名)。解构就是帮你自动完成这个“拿出并贴标签”过程的语法。 这是最常用的解构形式,用于从对象中提取属性。...

JavaScript 测试

**测试驱动开发 (Test-Driven Development, TDD)** 是一种软件开发流程,它的核心思想是**先编写测试,再编写足以让测试通过的代码**。这与传统的“先写代码,后写测试”的流程正好相反。 TDD 遵循一个简短的重复循环,称为“红-绿-重构” (Red-Green-Refactor): 1. **红...

JavaScript 表单验证

HTML5 为表单输入框提供了一套强大的内置验证机制,通过添加特定的属性即可启用: - `required`:必填字段。 - `type="email"` / `type="url"`:验证字段是否为有效的 Email 或 URL 格式。 - `minlength` / `maxlength`:限制文本输入的最小/最大长度。 - `min` /...

JavaScript Lint

**Linter** 是一种静态代码分析工具,它会像一位严格的“代码审查员”一样,扫描代码并根据预设的规则集报告问题。 > Linter 的工作原理是,它首先将代码解析成一个**抽象语法树 (Abstract Syntax Tree, AST)**。然后,Linter...

JavaScript 面向对象编程

**面向对象编程 (Object-Oriented Programming, OOP)** 的核心目标是将复杂的问题分解为一个个独立的、可管理的单元(对象),从而提高代码的可重用性、可维护性和可扩展性。这种范式主要建立在四个核心原则之上: 1. **封装 (Encapsulation)** 2...

JavaScript 依赖注入

在开发中,一个类或模块通常需要依赖其他类或模块来完成工作。最直接的方式是在其内部直接创建依赖的实例。 ```javascript // 一个用于记录日志的服务 class Logger { log(message) { console. log(`[LOG]: ${message}`); } } // 用户服务,它需要使用 Logger class UserService {...

JavaScript 视图

在前端开发中,视图 (View) 是用户在浏览器中看到和交互的一切——也就是用户界面(UI)。JavaScript 的核心任务之一就是**动态地操纵这个视图**,以响应用户操作或数据变化。 最原始的视图操作方式是直接使用 DOM API。 ```javascript // 1. 获取一个 DOM 元素 const container = document...

Webpack

随着项目越来越复杂,我们会使用 ES6 模块将代码拆分到多个文件中,并引入许多第三方库。这会导致浏览器需要发起大量的 HTTP 请求来加载这些零散的文件,严重影响页面性能。 **打包工具 (Bundler)** 正是为了解决这个问题而生。它是一个构建工具,能够将我们项目中所有散落的 JavaScript 模块、CSS...

JavaScript 实现 Tic Tac Toe (2)

我们把 displayController 单独作为一个模块。这个模块完成了视图的工作、并提前做好一些绑定工作。 我们可以把一些固定的、不依赖特定情况的 DOM 操作先写好,这样就不需要在主文件 `script. js` 中写重复的代码了,主文件只需要负责把这些模块初始化、连接好即可。 我们把需要做绑定的组件传进来作为参数: ```javascript function...

npm 包管理器

npm 是 JavaScript **包管理器 (Package Manager)**。它主要由两部分组成: 1. **一个在线仓库 (Registry)**:一个巨大的、公开的数据库,存储了海量的、可重用的 JavaScript 代码包(Packages)。这些包可以是小型的辅助函数库(如 `lodash`),也可以是完整的前端框架(如 `React`, `Vue`)。 2...