为什么全局变量最好不用VAR定义

<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

原文地址:https://www.cnblogs.com/SCOOL/p/2341573.html