func1(); var a = "hello"; function func1(){ var b = "world"; b = a; alert(b); if(false){ var a = "hahaha"; } } 修改後 var a = "hello"; function func1(){ //方法聲明放到前面 var b; //局部變量的全部聲明都提早, var a; b = "world"; b = a; alert(b); if(false){ a = "hahaha"; //只有賦值的時候,纔在真實的位置 } } func1();
1.javascript在運行前會有預編譯期,會把聲明提早(無論這個生命是否真的會運行)
2.局部變量的優先權大於全局變量 javascript
chrome自定義大小:插件java