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>
该函数执行结果如右图:
注:在学习编程的过程中,我们可以通过官方的中文参考手册进行学习。毕竟很多知识太过繁杂且生僻,但偶尔又需要用到,这个时候能够有一份官方文档作为学习和参考是十分方便的。