JavaScript 函数与变量预解析的区别

108 阅读1分钟

仅供学习,转载请注明出处

简介

在JavaScript中,对于变量的预解析是设置一个undefined,则函数则是提前编译好内部的所有值。

下面写个示例直观感受一下。

预解析示例

编写一个变量的打印以及函数打印变量,查看区别。

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript">
		
		alert(iNum); // 会弹出undefined ,因为变量的定义在下方

		fnAlert(); // 会弹出 fnalert 10 ,因为只要是函数,JavaScript会提前编译好


		var iNum = 100;

		function fnAlert(){
			var a = 10;
			alert("fnAlert " + a);
		}

	</script>
</head>
<body>

</body>
</html>

浏览器演示如下:

从上面的示例,可以看出变量只会预解析为undefined,而函数则会将里面的变量都预解析完成。