news 2026/4/17 12:51:28

DOM 入门:搞懂节点树,才算真正摸到前端的门,也才看得懂 Web 安全

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DOM 入门:搞懂节点树,才算真正摸到前端的门,也才看得懂 Web 安全

很多人学 JavaScript,刚开始总觉得自己会点alert()、会点按钮点击事件,就算入门了。
但只要一碰到页面元素操作,立刻就开始发懵:

  • 为什么这个标签能拿到,那个拿不到?
  • document到底是什么?
  • document.title为什么拿到的是文字,不是标签?
  • 为什么安全测试里老在说 DOM XSS、DOM 污染、DOM 操作?

说白了,如果你没搞懂 DOM,前端很多东西你只是“会抄代码”,不是真懂。

更关键的是,对网络安全从业者来说,DOM 不只是前端知识点,它还是理解这些问题的基础:

  • 前端页面是怎么组织的
  • 浏览器是怎么解析标签的
  • 用户输入最终会进入哪里
  • 哪些 DOM 操作容易引发 XSS
  • 页面内容是怎么被 JavaScript 动态改写的

今天这篇文章,就从最基础的 DOM 认知开始,带你把这块真正捋顺。
为了方便你发头条,我还把每个知识点都配上了思维导图结构建议,你可以直接拿去做配图。


一、先说结论:DOM 到底是什么?

DOM,英文全称Document Object Model,中文叫文档对象模型

你可以先把它理解成一句人话:

浏览器为了让 JavaScript 能“看见”并“操作”网页,把整个 HTML 文档组织成一棵对象树,这套树形结构就叫 DOM。

也就是说,在浏览器眼里,网页不是一堆散乱的标签,而是一棵有层级关系的树。

比如下面这段最简单的 HTML:

<!DOCTYPEhtml><html><head><title>DOM测试页面</title></head><body><h1>欢迎学习 DOM</h1><p>这是一个段落</p></body></html>

浏览器解析后,它在逻辑上就像这样:

  • document
    • html
      • head
        • title
      • body
        • h1
        • p

这就是所谓的节点树


二、JavaScript 其实不只是“语法”,它有三块核心内容

很多初学者把 JavaScript 只理解成变量、函数、循环、判断。
这其实只看到了其中一部分。

从学习路径上看,JavaScript 相关内容通常可以分成三块:

1. ECMAScript

这是 JS 的语法规范,规定了语言层面的规则,比如:

  • varletconst
  • function
  • 数组
  • 对象
  • 条件判断
  • 循环
  • 类、Promise、箭头函数等

你可以把它理解成:
这是 JS 的“语法骨架”。

2. DOM

也就是文档对象模型,核心是:

  • 获取页面元素
  • 修改页面内容
  • 操作标签属性
  • 修改样式
  • 响应用户事件

你平时写的:

document.getElementById("box")

这就是 DOM 范畴。

3. BOM

BOM 是Browser Object Model,中文叫浏览器对象模型
它关注的是浏览器本身,而不是页面文档。

比如:

  • window
  • location
  • history
  • navigator
  • alert()
  • setTimeout()

BOM 更像是在操作“浏览器环境”。


JavaScript 三大组成部分


三、什么是节点?什么又叫节点树?

在 DOM 里,网页中的元素会被抽象成一个个“节点”。

简单理解,像这些标签:

  • <html>
  • <head>
  • <body>
  • <title>
  • <div>
  • <p>

都可以看成节点。

而节点之间并不是平级堆在一起,它们有明确的层级关系:

  • 父节点
  • 子节点
  • 兄弟节点
  • 祖先节点
  • 后代节点

比如看这段代码:

<html><head><title>标题</title></head><body><div><p>内容</p></div></body></html>

它的层级关系就是:

  • html是最外层节点
  • headbodyhtml的子节点
  • titlehead的子节点
  • divbody的子节点
  • pdiv的子节点

这整套关系连起来,就形成了一棵树,所以叫节点树


节点树结构认知

四、document 到底是什么?为什么它这么重要?

在浏览器里,DOM 的入口对象就是document

你可以把document理解成:
整个网页文档在 JavaScript 里的总入口。

也就是说,你想操作页面上的元素,基本都得从它开始。

比如:

console.log(document);

运行后,你会在浏览器控制台看到整个文档对象。

代码示例

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 12:50:19

终极指南:如何用nhentai-cross实现全平台漫画自由阅读

终极指南&#xff1a;如何用nhentai-cross实现全平台漫画自由阅读 【免费下载链接】nhentai-cross A nhentai client 项目地址: https://gitcode.com/gh_mirrors/nh/nhentai-cross 还在为在不同设备间切换阅读漫画而烦恼吗&#xff1f;nhentai-cross正是你需要的跨平台…

作者头像 李华
网站建设 2026/4/17 12:44:11

WSL-Debian配置CUDA环境:从零到深度学习实战

1. 为什么要在WSL-Debian中配置CUDA环境&#xff1f; 最近几年深度学习技术发展迅猛&#xff0c;很多开发者都开始尝试在自己的电脑上搭建深度学习开发环境。对于Windows用户来说&#xff0c;WSL&#xff08;Windows Subsystem for Linux&#xff09;提供了一个绝佳的解决方案。…

作者头像 李华