因为,在js中,如果某个变量没有var声明,会自动移到上一层作用域中去找这个变量的声明语句,如果找到,就是用,如果没找到, 就继续向上寻找,一直查找到全局作用域为止,如果全局中仍然没有这个变量的声明语句,那么自动在全局作用域进行声明,这个就 是js中的作用域链,也叫变量提升 代码示例如下: var data = 10; function fn1() { var data = 100; alert(data);//此时的data为100 fn2(); alert(data); //此时的data为