函数讲解二
1、JS三部曲
语义分析、预编译、解释执行
2、预编译详解
重点:函数声明整体提升
变量 声明提升
例子:
test12();
function test11(){
console.log("你好");
}
function test12(){
console.log("你好2");
}
虽说在JS中是属于顺序执行语句,但对于函数的声明和调用,如果调用放置在函数之前或者之后,JS在预编译时,根据函数声明整体提升会将定义的函数放置在JS片段的最前面,即:
<script type="text/javascript">
function test11(){
console.log("你好");
}
function test12(){
console.log("你好2");
}
test12();
</script>
如果是变量,例如:
<script type='text/javascript'>
console.log(a);
var a = 123;//这语句属于变量声明赋值
</script>
结果将显示:undefined
实质的执行过程为【变量 声明提升】:
<script type='text/javascript'>
var a;
console.log(a);
a = 123;
</scipt>
但是如果为此种情况
<script type='text/javascript'>
console.log(a);
</script>
则属于程序错误