1
0
0

HTML中引入JavaScript

2026-10-07
2026-10-07

HTML 中引入 JavaScript

  在 HTML 中引入 JavaScript 代码主要有以下几种方式:

HTML 事件属性(不推荐)

  直接在 HTML 元素的事件属性中写 JS 代码(已过时):

<button onclick="alert('按钮被点击')">点击</button>
  • 缺点:混合了结构与行为,难以维护。

  知识点:

  1. JavaScript 是一种基于事件驱动(Event-Driven)的编程语言。
  2. click​是事件, ​onclick​是事件句柄。事件句柄可作为 HTML 标签的属性形式存在。
  3. 在事件句柄中注册回调函数。例如​onclick="sayHello()"​ ,其中​sayHello()​就是回调函数。
  4. 原理:页面加载的时候,当加载到该 HTML 标签时,完成回调函数与事件的绑定(注册)。后续当用户点击该按钮时,发生​click​事件,浏览器负责调用回调函数。
  5. 弹窗代码: ​window.alert('Hello JavaScript')​ ,其中​window​是 JS 内置对象,代表当前浏览器窗口, ​alert​是​window​对象的方法,功能是弹出警告框。

内联方式(Inline Script)

  直接在 HTML 文件中使用​<script> 标签包裹 JavaScript 代码:

<script>
  console.log('内联JavaScript代码');
</script>
  • 位置:可以放在​<head>​或​<body> 中。
  • 特点:代码直接嵌入 HTML,适合少量逻辑。

  关于快速生成打印语句:

  console.log() 是向控制台上打印输出,在 VS Code 中如何快速生成该语句呢?可进行这样的配置:

图片

图片

  打开 ​javascript.json​文件后,添加如下的配置,然后保存文件,随后在 js 文件中输入 cl 即可快速生成 ​console.log(); 语句:

{
	"Print to console": {
		"prefix": "cl",
		"body": [
			"console.log($1);"
		],
		"description": "Log output to console"
	}
}

  另外以后也会学习 TypeScript,以后也需要在 ​.ts​文件中快速生成打印语句,因此可以将以上的配置在 ​typescript.json 文件中进行重复配置。

  IDEA 的配置方法

外部引入(External Script)

  通过​<script>​标签的​src 属性引入外部 JS 文件:

<script src="script.js"></script>
  • 位置:通常放在​ ​<body>​ ​末尾(避免阻塞渲染),也可在​<head>​中配合​defer​或​async 使用。

  • 特点:

    • 模块化:代码可复用,便于维护。
    • 缓存优势:浏览器会缓存外部 JS 文件。
  • 注意: ​ ​<script>​ ​ 标签如果设置了 ​​src​​ 属性,标签内部的代码会被完全忽略。

动态加载(Dynamic Script Loading)

  通过 JavaScript 动态创建​<script> 标签:

const script = document.createElement('script');
script.src = 'script.js';
document.body.appendChild(script);
  • 用途:按需加载脚本,提升性能。

defer 与 async 属性

  defer​与​async​属性(仅限外部脚本)

defer 延迟执行

<script src="script1.js" defer></script>
<script src="script2.js" defer></script>

  defer 的执行时机:

  DOM 构建完成 → (开始执行 defer 脚本) → (所有 defer 脚本执行完毕) → DOMContentLoaded 事件触发 → 浏览器继续加载页面中引用的外部资源,如图片、视频等 → load 事件发生。

  重点注意事项:defer 脚本在执行时,已经完全可以获取页面中所有的 dom 元素了。

  代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>defer关键字</title>
	<script src="test.js"></script>
	<script src="test.js" defer></script>

</head>
<body>
	<div id="myDiv"></div>
</body>
</html>

  test.js

console.log(document.getElementById('myDiv'));

  ‍

async 异步加载

<script src="script1.js" async></script>
<script src="script2.js" async></script>
  • ✅ ​async​脚本:下载完 js 文件就执行,不保证 DOM 是否就绪,适合独立任务。
  • ✅ 什么是异步加载:不保证先执行​script1.js​再执行​script2.js。谁先下载完,谁先执行。

  ‍

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

HTML中引入JavaScript
/archives/post-1791354832070
作者
Bam
发布于
2026-10-07
许可协议
CC BY-NC-SA 4.0

评论