JS中,在函数执行前会首先对函数进行词法分析,然后再执行函数。
<script>
function t1(age){
//词法分析第1步:age=undefined
console.log(age);
//函数执行第1步(使用词法分析完成后提供的数据):age为function被输出
var age = 27;
//词法分析第3步:age=undefined。词法分析时实参不进行传值
//函数执行第2步:age被赋值为27
console.log(age);
//函数执行第3步:age为27被输出
function age(){}
//词法分析第4步:age=function
//函数执行第4步:执行名为age的空函数
console.log(age);
//函数执行第5步:函数执行第4步中age值未被改变,age仍为27被输出
}
t1(3)
//词法分析第2步:age=3。词法分析时形参进行传值
</script>
该函数执行结果如右图:
注:在学习编程的过程中,我们可以通过官方的中文参考手册进行学习。毕竟很多知识太过繁杂且生僻,但偶尔又需要用到,这个时候能够有一份官方文档作为学习和参考是十分方便的。