从头学前端-40:什么是DOM?怎么用?

867 阅读4分钟

这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战

大家好,我是一碗周,一个不想被喝(内卷)的前端。如果写的文章有幸可以得到你的青睐,万分有幸~

这是【从头学前端】系列文章的第四十篇-《DOM是什么?》

本系列文章在掘金首发,编写不易转载请获得允许

在HTML页面使用JavaScript

概述

之前我们已经学习了JavaScript基础语法和HTML、CSS基础语法,但是我们学习这两个内容的时候是分别学习的,并没有任何联系。

那有没有办法在HTML页面中引入JavaScript语言呢?答案是有的,我们可以使用<script>元素可以把JavaScript插入到HTML页面中,或包含外部的JavaScript文件。

<script>元素

HTML提供的<script>元素用于嵌入或引用可执行脚本。这通常用作嵌入或者指向JavaScript代码<script>元素也能在其他语言中使用

<script>元素拥有开始标签和闭合标签,这两个都是不允许省略的

<script>元素的常见属性

<script>元素的属性通常都是可选的**,常用的属性如下:

async属性:表示脚本会被并行请求,并尽快解析和执行。TML5新增

charset属性:表示通过src属性指定的代码的字符集,但大多数浏览器会忽略它的值。不常用

defer属性:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部文件有效。

src属性:这个属性定义引用外部脚本的URI,这可以用来代替直接在文档中嵌入脚本。指定了src属性的script元素标签内不应该再有嵌入的脚本。

type属性:该属性定义<script>元素包含或src引用的脚本语言。属性的值为MIME类型(多用途互联网邮件扩展类型)。如果没有定义这个属性,脚本会被视作JavaScript。

使用<script>元素的方式

使用<script>元素的方式有两种,具体如下:

  • 内联/内嵌方式:在<script></script>中间写JavaScript代码
  • 外部引入方式:即在src属性中引入JavaScript文件。

示例代码如下:

<body>
  <!-- 使用内联的方式引入 -->
  <script>
    console.log('这是一段JavaScript代码')
  </script>
  <!-- 使用外部引入的方式,src='这里可以是绝对路径,也可以是相对路径;通常为相对路径' -->
  <script src="01 text.js"></script>
</body>

<script>元素的位置

<script>元素既可以在<head>元素中,也可以在 <body> 元素中,具体代码如下

<head>
  <script>
    console.log('这是一段JavaScript代码')
  </script>
</head>

<body>
  <script>
    console.log('这是一段JavaScript代码')
  </script>
</body>

<head>中的优势是CSS文件和JavaScript文件都放在了相同的地方,但是会造成在所有JavaScript代码被下载解释完成之前,在<body>里的页面内容将不会呈现,导致页面呈现空白。

最好的做法就是将全部的JavaScript引用放在<body>元素内容的后面

注意事项

建议<script>元素尽量少出现,如果有多个<script>元素尽量编写在一起;因为浏览器内置集成了引擎/解释器是HTML/CSS引擎/解释器 和 JavaScript 引擎/解释器,这么做的目的是减少浏览器引擎/解释器切换,来增加访问速度

使用<script>元素的两种方式都是没有问题的,但是一般尽可能使用外部引入JavaScript代码的方式,这样做便于以后维护代码,而且如果有多个页面共同使用一个JavaScript文件的话,浏览器只需要下载一次

DOM是什么

什么是DOM

DOM是(document Object Model)的缩写,译为文档对象模型。其中

  • D表示Document,就是DOM将HTML页面解析为一个文档。同时提供了document对象
  • O表示Object,就是DOM将HTML页面中每个元素解析为一个对象。
  • M表示Model,就是DOM中表示各个对象之间的关系。

DOM的标准

由于DOM的标准规范是由W3C组织并起草定义的,所以W3C对DOM的定义是目前最权威的解释。官方译文如下:

DOM是一个独立于任何语言和平台的接口允许任何语言或脚本动态地访问和更新HTML文档的内容、结构和样式。该HTML页面可以进一步处理,并且该处理的结果可以被合并到所呈现的HTML页面中。

DOM的作用

DOM被设计用于解析HTML页面文档,方便JavaScript语言通过DOM访问和操作HTML页面中的内容。

DOM是由W3C组织定义标准规范,并且由各大刘览器厂商支持。严格意义上来讲,DOM并非属于JavaScript语言。

我们之所以可以在JavaScript语言中使用DOM,是因为各大刘览器将DOM的标准规范内容封装成了JavaScript语言所支持的形式。

对DOM中的对象,我们只有调用的权限,没有修改的权限,也说明了这个问题。

浏览器加载并运行HTML页面后,会创建DOM结构。由于DOM中的内容被封装成了JavaScript语言中的对象,所以我们可以使用JavaScript语言通过DOM结构来访问和操作HTML页面中的内容。

DOM树

DOM可以访问和更新HTML页面中的内容、结构和样式,是因为DOM将HTML页面解析为一个树结构。

01_DOM树.png

{完}

写在最后

你如果看到这里,我感到很荣幸,如果你喜欢这篇文章,你可以为这篇文章点上一个小赞;你如果喜欢这个专栏,我会一直更新到百篇以上,可以点一下后面的链接从头学前端 - 一碗周的专栏 - 掘金 (juejin.cn)进入之后给个关注。

最后也可以给我点个关注,万分荣庆。

往期推荐