<script>
myvar = 'my value';
(function() {
alert(myvar);
myvar = 'local value';
})();//执行结果是:my value
var myvar = 'my value';
(function() {
alert(myvar);
var myvar = 'local value';
})();//执行结果是:undifind
执行还是从上往下,只不过在预解析或者说编译的时候,var 申明的变量会加上当前作用域,所以myvar 是函数体内私有变量。。
</script>
javascript的策略是让那些忘记预先声明的变量变成全局变量,导致查找bug困难
在函数之外的程序中声明变量的不能被delete
这种情况好像叫hoisting