· 5 min read



JavaScript 定时调度 三 大核心 API
最佳实践:用递归 setTimeout 替代 setInterval,保证间隔准确、支持动态调整。
零延迟调度:setTimeout(fn, 0) 不是立即执行,而是当前同步任务完成后尽快执行,可用于拆分长任务。
关键提醒:定时器回调中的 this 指向全局对象;务必清理不再需要的定时器防止内存泄漏。
DOM 增删改查只记现代 API,老的 getElement 系列 + innerHTML 拼接可以忘了。
要点一: 事件系统的三大角色 —— 事件对象(存储状态)、事件源(被操作对象)、监听函数(回调处理)
addEventListener 第三个参数 useCapture 决定在捕获/冒泡阶段触发,默认 false(冒泡)stopPropagation() 只阻止向其他元素传播,不阻止当前元素的其他监听器stopImmediatePropagation() 彻底阻止传播,包括当前元素的后续监听器Flexbox 是 容器定方向,子项定大小 两套属性加起来 12 个的事。
display: flex 一行,元素变弹性容器gap 替代 margin 间距
JavaScript 正则表达式 四 大核心模块
test()、exec()、lastIndex 属性match()、search()、replace()、split()最容易踩坑:全局匹配 g 修饰符与 lastIndex 的关系、贪婪 vs 惰性匹配
最佳实践:使用 regex101.com 在线调试验证正则表达式
关键提醒:正则表达式带有 g 修饰符时,test() 和 exec() 会持续更新 lastIndex,可能导致意外结果

DOM 里 Node 是基类,Element 只是 7 种节点之一——文本、注释、文档都是 Node 但 不是 Element。
nodeName、nodeValue、textContent 各管一摊Node.ELEMENT_NODE 常量,禁硬编码数字parentElement 只对 Element 父节点有值