87,910
社区成员
发帖
与我相关
我的任务
分享
var tt = 'aa';
function test(){
alert(tt);//在此步骤前会先创建函数内部的变量 tt
var tt = 'dd';
alert(tt);
}
test();
函数被运行的时候,首先创建该函数内的变量,所以首先执行的是var tt; 然后是alert(tt);这时候函数内部也即执行环境作用于已经有tt这个变量,所以不回去全局环境作用域去找tt字面量,所以第一个alert不会打印'aa', 第二个打印dd也就理所当然了。
其实最主要的还是js在执行函数的时候预先创建变量的机制
alert(i);
function ff(){
alert(i);
alert(z);
var z="xx";
alert(z);
}
ff();
var i=3;
var z="dd";
ff();