码迷,mamicode.com
首页 > 其他好文 > 详细

预编译

时间:2018-11-14 19:47:54      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:编译   变量   obj   console   col   上下文   上下   span   def   

     function fn(a) {
            console.log(a); //function a() {}

            var a = 123;    //变量声明提升在第二部已经执行了。这会只执行123的赋值,所以AO对象里面的a变为123;

            console.log(a); // 123

            function a () {}    //函数声明提升,在第四步已经执行了,所以这一步不看(已经看过了)。

            console.log(a);     // 123

            var b = function () {} //把function 赋值给了b; 

            console.log(b);     // function () {};

            function d() {}     //函数声明提升,在第四步已经执行了,所以这一步不看(已经看过了)。
        }
        fn(1);
// 1.创建AO对象 (Activation Object)(中文名:执行期上下文)也就是我们所理解的作用域;
// 2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
// 3.将实参值和形参统一;
// 4.在函数体里面找到函数声明,值赋予函数体。
function fn(a) {
    console.log(a); //function a() {}

    var a = 123;    //变量声明提升在第二部已经执行了。这会只执行123的赋值,所以AO对象里面的a变为123;

    console.log(a); // 123

    function a () {}    //函数声明提升,在第四步已经执行了,所以这一步不看(已经看过了)。

    console.log(a);     // 123

    var b = function () {} //把function 赋值给了b; 

    console.log(b);     // function () {};

    function d() {}     //函数声明提升,在第四步已经执行了,所以这一步不看(已经看过了)。
}
fn(1);

 

预编译

标签:编译   变量   obj   console   col   上下文   上下   span   def   

原文地址:https://www.cnblogs.com/YangJonathan/p/9959875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!