function f1() { console.log(num); var num = 10; } f1(); //此时运行结果是undefined
此时运行结果是undefined,因为预解析,变量声明被提前了,实际按下面的方式解析的:
function f1() { var num console.log(num); num = 10; } f1(); //此时运行结果是undefined
举例2:
//函数调用的时候,把会函数的声明提升到作用域的上面 f1();//调用 var num = 20;//这个变量的声明会提升到变量使用之前 function f1() { console.log(num); //var num=10; }
function f1() { console.log(num);//undefined var num = 10; } f1(); console.log(num);//报错
<script> function f1() { console.log("哈哈"); } </script> <script> f1(); function f1() { console.log("嘎嘎"); } </script>
原文:https://www.cnblogs.com/jane-panyiyun/p/11957297.html