<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script>
var a=1;
func();
function func(){
alert(b);
var b=2;
}
//上面结果为未定义undefined
//原理:js的解析器在检测到script标签的时候会先进行预解析
//预解析流程
//将var 和function提前,但不执行function的内容,且顺序不能变。也是变量提示和函数提升
//提前后进行上下文执行
//1,变量和函数提前,但不执行函数
var a;
function func(){
alert(b);
var b=2;
}
a=1;
func();
//2.进入func()继续执行变量和函数提前操作,还是不执行
var b;
alert(b);
b=2;
//直到没有var和function可以提前后进行执行上下文,
//所以之前的在经过预解析后变成最终形态
var a;
functio func(){
var b;
alertb);
b=2;
}
alert(a);
a=2;
</script>
</head>
<body>
</body>
</html>
js为什么可以先调用后解析 例子说明
最新推荐文章于 2020-07-09 08:57:16 发布