登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
3
/ 3 页
下一页
返回列表
首页
›
业界区
›
业界
›
Web前端入门第 54 问:JavaScript 3 种书写位置及 scrip ...
Web前端入门第 54 问:JavaScript 3 种书写位置及 script 标签的正确存放位置
[ 复制链接 ]
轧岔
2025-6-2 23:45:56
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
JS 的代码并没有强制规定放在 HTML 中的某个位置,如果您有使用过开发者工具查看过网页源码,那么您会看到很多 JS 代码都以 .js 文件的形式存放,并且放在了 HTML 文件最后,也就是 结束标签之前。
但如果仔细观察,在 标签中,也会找到很多 script 标签引入的 JS 代码。
那么您是否好奇过他们都有哪些区别??
3 种书写位置
与 CSS 一样,JS 的脚本算起来也有三种书写方式,分别为行间 JS 代码、内联脚本、外部脚本。
1、事件处理
直接在 HTML 元素的事件属性中写代码,此方式一般多用于编写 demo 测试程序,正常的项目开发
不推荐
这种写法。
原因:onclick 中的方法名必须全局声明,导致污染全局变量,并且混合了 HTML 结构和 JS 事件行为代码,不利于项目维护。
<p onclick="alert('Hello World!')">点击我</p>
点击我
复制代码
2、内联脚本
[/code][b]3、外部脚本[/b]
[code]
复制代码
ES6 模块化引入,此方式必须要有一个服务器环境!比如:本地安装一个 nginx。
[/code][size=4]内联脚本应用场景[/size]
内联脚本一般多用于页面初始化、临时代码调试、首屏渲染必需的初始化逻辑等场景,比如三方插件初始化:
[code]
复制代码
外部脚本应用场景
外部脚本适合复杂、复用性高的场景,是现代 Web 开发的主流选择,使用外部脚本可以降低 HTML 代码的复杂度,有利于项目的维护。
[/code][b]模块化引入方式:[/b]
[code]
复制代码
index.js:
import { a } from './utils.js';
import { b } from './common.js';
a();
b();
document.querySelect('#button').addEventListener("click", async () => {
// 按需加载模块
const module = await import("./test-module.js"); // test-module.js 中导出 run 方法
module.run();
console.log('Hello World!');
});
复制代码
script 标签属性
script 标签除了常见的 type 和 src 外,还有两个控制脚本异步加载的属性,分别为 async 和 defer,区别如下:
1、无 async/defer
HTML 解析 → 遇到
复制代码
应用场景:脚本完全独立,不依赖其他脚本或 DOM,比如:统计代码、广告代码等。
3、defer
HTML 解析(并行下载脚本) → HTML 解析完成 → 按顺序执行所有 `defer` 脚本
复制代码
多个 defer 脚本严格按文档顺序执行,无论下载速度。所有 defer 脚本执行完毕后,才会触发 DOMContentLoaded 事件。
[code][/code]应用场景:脚本需要访问完整的 DOM 或依赖其他脚本,比如:页面初始化逻辑。
script 标签位置
首先要明白,存放在 head 中的 script 标签,会阻塞页面加载,如果这个文件超大,那么页面白屏时间就会很长。
如果是内联脚本,放在哪儿其实影响不大,主要看其内容中有没有耗时的操作。
如果您的脚本需要尽早执行,那么建议放在 head 中。比如:vconsole调试工具,尽早加载有利于捕获代码错误。
如果您的脚本需要访问完整的 DOM,那么建议放在 body 的最后,这样可以确保 DOM 已解析完成。
虽然可以使用 defer 控制脚本延迟加载,但某些兼容原因,还是建议 JS 脚本后置兼容旧版本浏览器。
写在最后
JS 代码应该首先考虑放在外部文件中,HTML 结构应该永远保持简洁。
除非您真的有需求,才建议将 JS 代码放在 head 中,否则 JS 代码应该永远放在 结束标签之前。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
位置
Web
书写
正确
标签
相关帖子
Web打点中的权限维持思路
Vue 3 组件通信的 4 种正确姿势
PicoServer 跨平台 Web 架构实战系列 (一) MAUI 中嵌入 PicoServer 入门
PicoServer 跨平台 Web 实战系列(二) 路由机制与 API 设计
MAUI 嵌入式 Web 架构实战(七) 构建设备实时通信与控制系统
AI的正确使用方法
不是有video标签吗?为什么还需要视频播放器?
大学生挑战全网超详细web笔记02弹
Oracle RMAN物理备份Web系统
web课堂笔记
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Web打点中的权限维持思路
2
165
嫁蝇
2026-03-03
安全
Vue 3 组件通信的 4 种正确姿势
2
452
替攀浮
2026-03-04
业界
PicoServer 跨平台 Web 架构实战系列 (一) MAUI 中嵌入 PicoServer 入门
1
871
都淑贞
2026-03-05
安全
PicoServer 跨平台 Web 实战系列(二) 路由机制与 API 设计
1
420
鄂缮输
2026-03-05
业界
MAUI 嵌入式 Web 架构实战(七) 构建设备实时通信与控制系统
0
719
瞿佳悦
2026-03-10
业界
AI的正确使用方法
0
47
仲秀娟
2026-03-11
安全
不是有video标签吗?为什么还需要视频播放器?
0
27
指陡
2026-03-14
业界
大学生挑战全网超详细web笔记02弹
0
173
损注
2026-03-17
业界
Oracle RMAN物理备份Web系统
0
275
古修蟑
2026-03-18
安全
web课堂笔记
0
951
计海龄
2026-03-23
回复
(42)
麓吆
2025-10-20 19:12:52
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
聱嘹
2025-11-4 16:23:33
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
前排留名,哈哈哈
蔡如风
2025-11-25 20:24:54
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
痕伯
2025-12-11 11:09:27
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
懂技术并乐意极积无私分享的人越来越少。珍惜
喳谍
2025-12-16 19:51:56
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
呼延冰枫
2025-12-25 17:26:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
轨项尺
2026-1-1 07:51:27
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
谷江雪
2026-1-2 17:18:43
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,学习下。
左优扬
2026-1-15 00:01:02
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
渭茱瀑
2026-1-18 05:09:35
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
谅潭好
2026-1-18 13:33:15
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
谢谢分享,试用一下
谭皎洁
2026-1-18 20:01:20
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
仲水悦
2026-1-18 21:55:37
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
拼潦
2026-1-20 15:15:24
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
娥搽裙
2026-1-28 23:21:45
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
鼓励转贴优秀软件安全工具和文档!
钤凑讪
2026-1-30 02:48:00
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
热心回复!
祖柔惠
2026-2-3 08:53:41
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
瞧厨
2026-2-7 11:34:06
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
梨恐
2026-2-7 15:35:16
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
下一页 »
1
2
3
/ 3 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
轧岔
2026-2-7 15:35:16
关注
0
粉丝关注
27
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9522
6
韶又彤
9916
7
宋子
9878
8
荪俗
9020
9
闰咄阅
9997
10
刎唇
9999
查看更多
今日好文热榜
78
OpenClaw 是什么?它和 AI工具 以及 Agent
143
【节点】[Texture3DAsset节点]原理解析与实
770
【节点】[Texture3DAsset节点]原理解析与实
465
【节点】[Texture3DAsset节点]原理解析与实
470
【节点】[Texture3DAsset节点]原理解析与实
741
【节点】[Texture3DAsset节点]原理解析与实
438
【节点】[Texture3DAsset节点]原理解析与实
927
【节点】[Texture3DAsset节点]原理解析与实
501
【节点】[Texture3DAsset节点]原理解析与实
366
【节点】[Texture3DAsset节点]原理解析与实
239
【节点】[Texture3DAsset节点]原理解析与实
110
【节点】[Texture3DAsset节点]原理解析与实
644
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
447
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
220
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
596
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
463
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
472
洛谷P1518 [USACO2.4] 两只塔姆沃斯牛 The
780
世界第一个开源可商用 .NET Office 转 PDF
874
世界第一个开源可商用 .NET Office 转 PDF