javascript执行顺序

形如$(function(){});内的代码的执行优先级是非常低的,它是一个假的自执行方法。

举个栗子:

<html>
<head>
<script language="javascript" src="jquery-1.7.1.min.js"></script>
<script>
var x="123";
$(function(){
console.log("x="+x);
});
x="321";
</script>
</head>
<body>
</body>
</html>

这段代码的输出结果是x=321;而不是x=123;

不过如果将其改成如下形式:

<html>
<head>
<script language="javascript" src="jquery-1.7.1.min.js"></script>
<script>
var x="123";
(function(){
console.log("x="+x);
})();
x="321";
</script>
</head>
<body>
</body>
</html>

就成了真自执行函数,定义完成之后立即执行,输出x=123.

 

如果在一个jsp页面中使用方法一的方式写了一段代码,而在另一个页面中使用<%@ include>标签将其引入,恰好两个页面中有一个JavaScript全局变量是同名的。

那么问题就出现了,页面一中的方法实际上使用的是页面二中的变量。

这是个坑。

不过这么做也有个好处,可以在页面二中控制页面一的执行流程,在不需要修改页面一的情况下,可惜貌似没发现有什么用。

posted @ 2019-05-06 19:24  轻红  阅读(630)  评论(0编辑  收藏  举报