变量提升练习

1.变量提升的面试题

var x = 30;
function test(){
    console.log(x);
    var x = 10;
    console.log(x);
    x=20;
    function x(){

    };
    console.log(x)
}
test();

分析:
第一步:

test是函数,每个函数作用域也首先要进行预解析,var,function声明的变量或者函数首先变量提升,但是函数的优先级高于变量,所以预解析池最终结果为function x(){}

第二步:

从上往下,逐步执行: 第一个alert(x)中的x向上查找,直至找到预解析池,function x(){},
第二个alert(x)中的x向上查找,找到var x=10;, 弹出 10;
第二个alert(x)中的x向上查找,找到 x=10;, 弹出 20;

总结:函数的作用域提升的优先级要高于变量提升的优先级

posted @ 2022-09-27 11:28  HuangJiaZ  阅读(39)  评论(0)    收藏  举报