</pre><pre name="code" class="javascript">
js没有块作用域,取而代之的是函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。
意味着,js函数里声明的所有变量(不涉及赋值)都被“提前”至函数体的顶部
var scope="abc"
function f(){
console.log(scope); //输出“undefined” ,而不是“abc”
var scope="local"; //变量在这里赋值,但是变量本身在函数体内任何地方都是有定义的
console.log(scope); //输出“local”
}