javascript中变量没有块级作用域函数内申明的变量在整个函数中都有效!

代码:
var g = "a"
function test()
{
    alert(g);   
//输出"undefined",而不是"a"
    var g =  "local";
    alert(g)   
//输出local
}


原因很简单: 由于内部变量g 在函数内部处处有效,在执行第一个alert(g)的时候,已经var了这个局部变量,但还没赋初值,因此会输出undefined
原文地址:https://www.cnblogs.com/jacktu/p/1061457.html