版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。 https://blog.csdn.net/qq_30225725/article/details/88605067
更多免费教学文章请关注这里
首先我们写一个代码:
解析前代码:
预解析(全局)后代码:
第二步:一行一行的执行代码
第三步:当执行函数时,再次进行预解析 局部作用域依然跟第一步一样解析
解析后: 放到当前局部作用域的上面(放到自己所在作用域的上面)
第四部:接着一步一步的执行
为什么输出的是undefined?
解答:因为就近原则,var num 全局变量和 function内的方法局部标量num是一样的, 所以优先是取局部变量里的值,但是代码执行,从上到下,未给num赋值,所以输出结果是undefined