JavaScript 预解析

概念:函数或者变量都会有一个提前解析的过程,js会把函数或者变量提前解析一下、解析到它们对应的作用域最开始的位置
1、先找 var 、function 关键字以及参数
2、如找到var 或者参数、会给它们赋值 undefined ; 如找到函数 function ,就会把整个函数都拿过来
3、把找到的东西放到对应的作用域最开始的位置
4、逐行执行代码
(按照预定义的步骤来解析代码)
//例子1
<script>
  console.log(a)    // undefined
  var a = 10;
  console.log(a)   // 10 
</script>

//例子2
<script>
var b = 20;
(function fn () {
  // var b = undefined; (找到变量b提到函数最前边)
     console.log(b)    // undefined
     var b = 12;
})()  
</script>

//例子3
<script>
var c = 10;
function fn1(){
    console.log(c);  //10
    c=20;
}
fn1();
console.log(c)  //20
</script>
        
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对一段js代码,js引擎并不是读一句执行一句,而是读取一段、解释执行一段。而一段一段执行,js会对读取的这段js代...
    糖小工阅读 690评论 0 0
  • js是运行在浏览器端的,浏览器内部众多功能中有一个小功能叫做js解析器。js在解析器在运行js代码时分为下面两步:...
    帅气的刘小二阅读 228评论 0 0
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,076评论 0 3
  • 看了第一季我觉得……并不好看啊 可能因为年代的原因吧,里面的套路对现在来说还是太少了。而且那个电话亭里头的大齿轮哈...
    菠00阅读 282评论 0 0
  • 不得不说,成都的艺术气息很浓,建筑设计新颖大气,各式各样的路灯,还有路边的熊猫雕塑。 不得不说,成都的司机很疯狂。...
    小猪璩阅读 349评论 0 3