Web API 入门
内容提要
文章介绍浏览器中的Web API:JavaScript由ECMAScript和Web API组成,核心是DOM和BOM。DOM将HTML文档表示为节点树,包括元素、属性和文本节点,根节点为html。document对象用于获取节点,常用querySelector、querySelectorAll、getElementById等方法,可动态修改页面实现交互效果。
延伸解读
ECMAScript 与 Web API 的关系
文章指出,JavaScript 由 ECMAScript 和 Web API 组成。ECMAScript 定义了变量、数据类型、表达式、语句和函数等语言标准,而浏览器在实现 ECMAScript 规范的基础上,扩展了实用功能,这些扩展就是 Web API。因此,平时在浏览器中使用的 JavaScript 能力,很多来自 Web API,而不仅仅是 ECMAScript 本身。
DOM 树与节点类型
DOM 将 HTML 文档表示为树状结构,称为 DOM 树。树中的每个组成部分都是节点,常见类型包括元素节点、属性节点和文本节点。元素节点对应 HTML 标签,如 head、div、body;属性节点对应标签的属性,如 a 标签的 href;文本节点对应标签内的文本内容。根节点特指 html 标签。
获取 DOM 对象的常用方法
document 对象是操作 DOM 的核心,提供了多种获取节点的方法。querySelector 返回第一个匹配的元素,querySelectorAll 返回所有匹配元素的集合,该集合是类数组对象,有 length 和数字索引,但没有 pop、push 等数组方法。此外还有 getElementById、getElementsByTagName 和 getElementsByClassName 等方法,可根据 id、标签名或类名获取元素。
动态修改页面与交互基础
通过修改 DOM 对象的属性或调用其方法,可以动态更新 HTML,从而实现网页的视觉效果和用户交互。例如,获取元素后可以修改其 style 属性来改变样式。文章中的示例展示了如何通过 document.querySelector 获取元素并设置颜色,这体现了 DOM 作为动态修改 HTML 的基础,是网页交互效果的核心。
Q&A
JavaScript 和 ECMAScript 有什么区别?
ECMAScript 定义了变量、数据类型、表达式、语句和函数等语言标准。浏览器实现了大部分 ECMAScript 规范,并扩展了实用功能,这些扩展称为 Web API。在浏览器中运行的 ECMAScript 加上 Web API 就构成了我们使用的 JavaScript。
DOM 是什么?它有什么作用?
DOM(文档对象模型)是用于表示和交互任何 HTML 或 XML 文档的 API。它将 HTML 文档中的每个元素视为具有许多属性和方法的对象。更改这些属性或调用这些方法可以动态更新 HTML,为网页的视觉效果和用户交互提供基础。
DOM 树中的节点有哪些类型?
节点是文档树的组成部分,每个节点都是一个 DOM 对象。常见类型包括元素节点(HTML 标签,如 head、div、body)、属性节点(HTML 标签的属性,如 a 标签的 href 或 div 标签的 class)和文本节点(HTML 标签的文本内容,如 title 标签内的文本)。根节点特指 html 标签。
document 对象是什么?它有哪些常用功能?
document 是 JavaScript 内置的专门用于 DOM 的对象,具有各种属性和方法,是学习 DOM 的核心。例如:通过 document.documentElement 获取根节点(对应 html 标签),通过 document.body 获取 body 节点,使用 document.write 向页面写入内容。
querySelector 和 querySelectorAll 有什么区别?
querySelector 返回第一个匹配的元素,querySelectorAll 返回所有匹配元素的集合(一个类数组对象,具有 length 和数字索引,但缺少 pop、push 等数组方法)。两者的参数都必须是带引号的 CSS 选择器字符串。
除了 querySelector,还有哪些获取 DOM 元素的方法?
还有 getElementById(通过元素的 id 属性获取元素节点)、getElementsByTagName(通过标签名获取元素,如 getElementsByTagName('div') 获取所有 div 元素)、getElementsByClassName(通过类名获取元素,如 document.getElementsByClassName('w') 获取所有类名为 w 的元素)。