一、js文件中全局变量的执行顺序为:(1)先执行全局变量的初始化,再执行function(){...}()中的赋值操作,最后执行$(function(){...});中的赋值操作
测试代码:
html文件:
<html>
<head>
<title>js变量执行顺序测试demo</title>
<script>
var name = "Nastu";
var sex = "fire boy";
</script>
<script src="http://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script src="jsdemo.js" type="text/javascript"></script>
</head>
<body>
<input id="name" type="input"/>
<input id="sex" type="input"/>
<input id="show" type="submit"/>
</body>
</html>
js文件:
var initStr = "ss";
$(function() {
$('#show').click(function() {initStr = "$init";
var inputName = $('#name').val();
var inputSex = $('#sex').val();
alert("初始化信息:" + name + "-" + sex + "\n" + "新输入信息:" + inputName + "-" + inputSex + "\n" + "initStr = " + initStr);
});
});var preLoading = function () {
initStr = "PreLoading init";
};
进行断点调试时,先执行var initStr = "ss"; 再执行initStr = "PreLoading init"; 最后执行“$init";由此可见,当声明的function(){...}后加上()后,其自动执行的优先级在$(funciton(){...});之前
二、在html页面中,在<script></script>标签中声明的变量为全局变量,可以直接在js文件中调用即可;
如上面示例代码中的name、sex变量,可以直接在js文件中使用:alert("初始化信息:" + name + "-" + sex + "\n" + "新输入信息:" + inputName + "-" + inputSex + "\n" + "initStr = " + initStr);