一道题引发的变量声明及作用域的关系
2016-07-12 本文已影响20人
蜻蜓之鱼
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();
![](https://img.haomeiwen.com/i1914422/96745590542054fb.png)