预解析过程
Posted zhaodz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了预解析过程相关的知识,希望对你有一定的参考价值。
预解析过程:
1.把var申明的变量提升到当前作用域的最前边,不会提升赋值
2.把函数申明提升盗作用域的最前边
3.如果函数同名,后者会覆盖前者
4.如果var申明的和函数申明的同名,函数优先
案例:
1.
<script> var num = 10; fn1(); function fn1() console.log(num) var num = 20 </script>
预解析后:
<script> var num = 10; function fn1() var num console.log(num) //10 num = 20 fn1(); </script>
打印结果:undefined
2.
<script> fn(); console.log(c); console.log(b); console.log(a); function fn() var a = b = c = 9; console.log(a); console.log(b); console.log(b); </script>
预解析后:
<script> function fn() var a = 9; //局部 b=9; //隐式全局 c=9; //隐式全局 console.log(a); console.log(b); console.log(c); fn() console.log(c); console.log(b); console.log(a); </script>
打印结果:
9 9 9 9 9 报错
以上是关于预解析过程的主要内容,如果未能解决你的问题,请参考以下文章