1.函数内外有重名的变量时,局部变量会覆盖全局变量,原因是函数域优先于全局域
2.当js执行进入函数时,函数内部声明过的所有变量会被提到最前,但同时对变量的赋值等操作不会被提升
例:
var a=123; function test(){ alert(a); //undefined var a=1; alert(a); //1 } test();
故:最好在函数的最上面声明所有会用到的变量。