JS在html之中加载顺序

本文深入探讨了HTML中JS的加载顺序与执行机制,解析了<script>标签位置对加载的影响,以及$(function(){...}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在html被浏览器加载过程中,JS的加载时受到<script />的位置影响的,因为html加载时时从上往下加载的,一般来说,我们在写HTML中写js,如果是外部引用的写在最上面,内部(页面里)的写在最下面。
而且$(function(){...})是在页面JS加载完之后才会加载。 同样的还有body标签的onload事件。
例如(例子需要引入Jquery文件):

<html>
	 <script src='js/jquery-3.3.1.min.js' type="text/javascript"></script>
	<script>
			$(function(){alert($("#text").value);})
			
		</script>
	<body>
		<input type="text" value="I AM BOY" id="text" />
	</body>
	<script>alert("I AM GIRL");</script>
</html>

这段代码中,最先输出的是 I AM GIRL,之后在输出I AM BOY;
分析:js在加载中$(function(){…})最后加载,因此,在页面的js块中alert最先加载执行,在进行function中的内容。
除此之外,JavaScript在编译执行时按照代码块进行的,会把声明性的函数提取出来,然后按照顺序执行。是单线程处理。
例2:

Demo1:

<html>
	<body>
	</body>
	<script>alert(name);</script>
	<script>
			var name="LI HUA";
	</script>
</html>

Demo2:

<html>
	<script>
			var name="LI HUA";
	</script>
	<body>
	</body>
	<script>alert(name);</script>
	
</html>

Demo3:

<html>
	 <script src='js/jquery-3.3.1.min.js' type="text/javascript"></script>
	<script>
			var name="LI HUA";
			$(function(){alert(name)})
	</script>
	<body>
	</body>
	<script>alert(name);
	name="XIAO MING"</script>
	
</html>

DEMO4:

<html>
	 <script src='js/jquery-3.3.1.min.js' type="text/javascript"></script>
	<script>
			$(function(){var name="LI HUA"; alert(name)})
	</script>
	<body>
	</body>
	<script>alert(name);
	name="XIAO MING"</script>
	
</html>

思考这3个Demo中的输出结果是什么?
第一个是NULL;
第二个是LI HUA;
第三个是LI HUA、XIAO MING;
第四个是NULL、LI HUA.
可以发现JS也有全局变量和局部变量之分,代码块之间可以共享全局变量,错误的加载顺序会导致错误的程序。因此在引用外部资源时,记得不要冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值