<script> /** 预解析:提前解析代码 * * 预解析做什么事? * 把变量的声明提前了(但赋值不会提前),提前到当前所在作用域的最上面 * 函数的声明也会被提前,提前到当前所在作用域的最上面 * * 预解析会分段(多对script标签中的函数重名,预解析的时候不会冲突) * * 先提前var,在提前function */ //把变量的声明提前了 console.log(num);//没有报错--undefined var num=20; f1(); function f1() { console.log("哈哈哈哈"); } f2(); var num1=20; function f2() { console.log(num1); //结果是undefined 不是20 var num1=10; } f3(); var num2=20; function f3() { console.log(num2); //结果是undefined 因为预解析将函数f3和变量num2(但没有赋值)的定义提前 } var num3=20; function f4() { console.log(num3); //结果是20 } f4();</script>
原文地址:https://www.cnblogs.com/chm-blogs/p/11219181.html
时间: 2024-10-10 16:13:13