javascript 语句执行顺序

1、javascript 是解释性语言

2、目前我只能说同级优先执行。所以下面的代码加了setTimeout


// 批量删除
$batchDel.click( function() {
   $('.coll_pub_tab input[name=fids]:checked').each(function(i){
			var id=$(this).attr("resourceId"),
				type=$(this).attr("dataType"); 
			del(id,type,false);
		}); 
		setTimeout(
			function() {
				window.location.href=location.href;
				//search();
			}, 500); 
}); 
function del(id,type,go){
}


上面的解释只是从现象出发,并不知道其中的原因,所说的:同级优先执行,也是不正确的。

1、代码块:<script></script>,代码块间相互独立,但变量和方法共享

2、声明式函数与赋值式函数的区别在于:在JS的预编译期,声明式函数将会先被提取出来,然后才按顺序执行js代码。上面说了JS引擎是按照代码块来顺序执行的,其实完整的说应该是按照代码块来进行预处理和执行的,也就是说预处理的只是执行到的代码块的声明函数和变量,而对于还未加载的代码块,是没法进行预处理的,这也是边编译边处理的核心所在。

step 1.  读入第一个代码块。

step 2.  做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到step5。

step 3.  对var变量和function定义做“预编译处理”(永远不会报错的,因为只解析正确的声明)。

step 4.  执行代码段,有错则报错(比如变量未定义)。

step 5.  如果还有下一个代码段,则读入下一个代码段,重复step2。

step6. 结束。




草木全
分享到:
共 0 条  此列表为空  当前1/1页

© 2014 究问社区 copyRight 豫ICP备13003319号-1