一道题引发的变量声明及作用域的关系

var tt = 'aa';

function test(){

    alert(tt);  //underfined;

    var tt = 'dd';

    alert(tt);  //dd

}

test();

注:js引擎在执行的时候会把所有的变量、函数声明提升到当前作用域的最前面。

所以如上代码就相当于

var tt = 'aa';

function test(){

    var tt;//只是声明但未赋值的变量值为undefined

    alert(tt);  //underfined;

     tt = 'dd';

     alert(tt);  //dd

}

test();



一道题引发的变量声明及作用域的关系_第1张图片

你可能感兴趣的:(一道题引发的变量声明及作用域的关系)