HTTP/1 主要特点与优缺点


JavaScript 定时调度 三 大核心 API
最佳实践:用递归 setTimeout 替代 setInterval,保证间隔准确、支持动态调整。
零延迟调度:setTimeout(fn, 0) 不是立即执行,而是当前同步任务完成后尽快执行,可用于拆分长任务。
关键提醒:定时器回调中的 this 指向全局对象;务必清理不再需要的定时器防止内存泄漏。
前面四个方法除了定义在 document 对象上,还定义在 Element 上,即在元素节点上也可以调用。
document.querySelector 方法接受一个 CSS 选择器作为参数,返回匹配该选择器的元素节点。如果有多个节点满足匹配条件,则返回第一个匹配的节点。如果没有发现匹配的节点,则返回null。
let el1 = document.querySelector('.myclass');
let el2 = document.querySelector('#myParent > [ng-click]');
Since HTML5 it’s been valid to start an HTML element ID with a number. For example <div id="10">. From an HTML perspective, that’s fine.
要点一: 事件系统的三大角色 —— 事件对象(存储状态)、事件源(被操作对象)、监听函数(回调处理)
addEventListener 第三个参数 useCapture 决定在捕获/冒泡阶段触发,默认 false(冒泡)stopPropagation() 只阻止向其他元素传播,不阻止当前元素的其他监听器stopImmediatePropagation() 彻底阻止传播,包括当前元素的后续监听器
JavaScript 正则表达式 四 大核心模块
test()、exec()、lastIndex 属性match()、search()、replace()、split()最容易踩坑:全局匹配 g 修饰符与 lastIndex 的关系、贪婪 vs 惰性匹配
最佳实践:使用 regex101.com 在线调试验证正则表达式
关键提醒:正则表达式带有 g 修饰符时,test() 和 exec() 会持续更新 lastIndex,可能导致意外结果

DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型”(Document Object Model)。它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作(比如增删内容)。
浏览器会根据 DOM 模型,将结构化文档(比如 HTML 和 XML)解析成一系列的节点,再由这些节点组成一个树状结构(DOM Tree)。所有的节点和最终的树状结构,都有规范的对外接口。
DOM 只是一个接口规范,可以用各种语言实 现。所以严格地说,DOM 不是 JavaScript 语法的一部分,但是 DOM 操作是 JavaScript 最常见的任务,离开了 DOM,JavaScript 就无法控制网页。另一方面,JavaScript 也是最常用于 DOM 操作的语言。后面介绍的就是 JavaScript 对 DOM 标准的实现和用法。
