1 var t = 10; 2 (function(){ 3 alert(t); 4 var t = 100; 5 })()
会出现alert出来的是undefined,原因是因为在函数域里定义一个变量时,变量的声明会提升至第一句,赋值则不会变。所以上述语句其实是这样执行的
1 var t = 10; 2 (function(){ 3 var t; 4 alert(t); 5 v = 100; 6 })()