函数赋值javascript函数执行前期变量环境初始化过程

在写这篇文章之前,xxx经已写过了几篇关于改函数赋值主题的文章,想要了解的朋友可以去翻一下之前的文章

    var d = '全局的';

    (function(){

 alert(d == undefined);//合结步调4

 var d = 123;

    })();

    (function(a){

 var a;

 alert(a == 123);//合结步调1,4;

    })(123);

    (function(){

 alert(typeof a == 'function');//合结步调2,4;

 function a(){}  //这句换面下,结果还是一样

 var a = 234;

    })();

    (function(){

 alert(typeof a == 'function');//合结步调2,4

    每日一道理
共和国迎来了她五十诞辰。五十年像一条长河,有急流也有缓流;五十年像一幅长卷,有冷色也有暖色;五十年像一首乐曲,有低音也有高音;五十年像一部史诗,有痛苦也有欢乐。长河永远奔流,画卷刚刚展开,乐曲渐趋高潮,史诗还在续写。我们的共和国正迈着坚定的步伐,跨入新时代。

 var a = 234;//这里赋值是在函数初始化实现后执行阶段实现的,因此面下a的类型变成了number

 alert(typeof a == 'number');//并没有反违步调2,4规矩,由于这是在执行期间判断的,下面的逻辑经已将a改变了

 function a(){}

    })();

    函数执行期前初始化量变环境走了如下程过:

    1、遍历数参列表,加添到函数量变环境并赋值。

    2、遍历函数声明,如果函数量变环境中存在则赋值,不存在则加添并赋值。

    3、加添arguments并赋值【这里不同浏览器现表异差较大,并不一定都是这样】

    4、遍历函数中有所的量变声明,如果量变环境中存在则不作任何操纵,不存在则加添并赋值undefined。

文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!


你可能感兴趣的:(函数赋值)