JS执行顺序 2

一、head区的script会优先于body区的script执行
Copy code
<script type="text/javascript">
<!--
B();
function B(){
    alert("B()");
}
//-->
</script>

2.如是函数的定义与函数执行是分别位于不同的script标签,则要求函数的定义所在script必需先于函数执行所在script标签,类似JS变量:
>> 正确书写方式:
Copy code

<script type="text/javascript" src="abc.js"></script>
<script type="text/javascript">
<!--
MyFunction(); //注: MyFunction是定义在外部JS文件abc.js内
//-->
</script>


2.如果网速度比较慢或而外部JS文件又比较大,则上述代码中的 MyFunction 有可能执行会出错:
>> 浏览器在解释到<script type="text/javascript" src="abc.js"></script>时,会发出一个http请求加载外部的文件,如果加载过程中出现异常(如:文件过大、网速度过慢、文件不存在等等),则会直接忽略掉当前外部文件的加载,进而去解释下一对HTML标签

3.同理,下面的书写顺序也是错误的:
<a code7'));"="" href="http://liuwei1578.blog.163.com/blog/static/495803642009126640915/" style="color: rgb(0, 0, 0); text-decoration: none;">Copy code
<script type="text/javascript">
<!--
MyFunction(); //注: MyFunction是定义在外部JS文件abc.js内,但引用abc.js的script标签尚解释到,因些无法执行
//-->
</script>
<script type="text/javascript" src="abc.js"></script>


五、关于body的onload事件和body内部script代码的执行
>> 位于body内部的代码会先于onload事件中的代码执行,测试代码:
<a code8'));"="" href="http://liuwei1578.blog.163.com/blog/static/495803642009126640915/" style="color: rgb(0, 0, 0); text-decoration: none;">Copy code

<html>
<head>
<title> 实例:body的onload事件与body区内部script的执行顺序 </title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="author" content="枫岩,CNLEI" />
<meta name="copyright" content="[email protected], http://www.cnlei.com" />
<script type="text/javascript">
<!--
function onloadForBody(){
    alert("这是body的onload事件触发后执行的结果");
}
//-->
</script>
</head>
<body onload="onloadForBody();">
<script type="text/javascript">
<!--
alert("这是body区里的script执行结果");
//-->
</script>
</body>
</html>

你可能感兴趣的:(JavaScript)