Skip to main content

91 posts tagged with "全栈开发"

View All Tags
· 4 min read

DOM 增删改查只记现代 API,老的 getElement 系列 + innerHTML 拼接可以忘了。

  1. 查询:querySelector / querySelectorAll 一对,覆盖 6 个老方法
  2. 插入:createElement + insertAdjacentHTML,比 appendChild 简洁
  3. 删除:el.remove() 一行替代 parentNode.removeChild 来回找
  4. 修改:dataset / classList / textContent,避免 innerHTML 拼接 XSS
  5. 2026 默认:框架项目里不要写裸 DOM API,那是 jQuery 时代肌肉记忆
· 9 min read

要点一: 事件系统的三大角色 —— 事件对象(存储状态)、事件源(被操作对象)、监听函数(回调处理)

  • 事件最早在 IE3 和 Netscape Navigator 2 中出现,用于分担服务器运算负载
  • IE4/Netscape4 时代出现了两种对立的事件流:IE 的冒泡流 vs Netscape 的捕获流
  • DOM2 级规范统一了事件模型,形成捕获阶段 → 目标阶段 → 冒泡阶段的三阶段事件流
要点二:关键 API 与易错点
  • addEventListener 第三个参数 useCapture 决定在捕获/冒泡阶段触发,默认 false(冒泡)
  • stopPropagation() 只阻止向其他元素传播,不阻止当前元素的其他监听器
  • stopImmediatePropagation() 彻底阻止传播,包括当前元素的后续监听器
  • 事件代理(委托)利用冒泡特性,将子元素监听统一挂载到父节点,性能更优
· 6 min read

Flexbox 是 容器定方向,子项定大小 两套属性加起来 12 个的事。

  1. 启动display: flex 一行,元素变弹性容器
  2. 容器 6 属性:flex-direction / flex-wrap / justify-content / align-items / align-content / gap
  3. 子项 6 属性:flex-grow / flex-shrink / flex-basis / flex / order / align-self
  4. 核心思路:先想主轴(默认水平),再选对齐方式
  5. 现代选择gap 替代 margin 间距
  6. 常见坑主轴 / 交叉轴搞反,90% 的 flex bug 都是这个
  7. 默认行为grow=0 / shrink=1不抢必缩
· 15 min read

JavaScript 正则表达式 大核心模块

  1. 基础语法:修饰符、元字符、反义、贪婪/惰性匹配
  2. RegExp 实例test()exec()lastIndex 属性
  3. String 方法match()search()replace()split()
  4. 高级特性:分组捕获、反向引用、断言 Assertion

最容易踩坑:全局匹配 g 修饰符与 lastIndex 的关系、贪婪 vs 惰性匹配

最佳实践:使用 regex101.com 在线调试验证正则表达式

关键提醒:正则表达式带有 g 修饰符时,test()exec() 会持续更新 lastIndex,可能导致意外结果

· 4 min read

DOM 里 Node 是基类,Element 只是 7 种节点之一——文本、注释、文档都是 Node 但 不是 Element

  • 节点类型:日常打交道最多是 Element / Text / Comment / Document 四种
  • 三大属性:nodeNamenodeValuetextContent 各管一摊
  • nodeType:用 Node.ELEMENT_NODE 常量,禁硬编码数字
  • 父子关系:parentElement 只对 Element 父节点有值
  • NodeList:实时的 集合,遍历时增删子节点会变化