李晓健
// 你在写代码的时候,可以这么写
testFun(); // 输出undefined , 不会报错
function testFun(){
console.log(number);
}
var number = 123;
/** 以上代码按照从上到下的顺序来理解,应该会报错 最先执行 testFun(); 这里它还没有定义
他里面又用到了number 变量,这里他应该也没有定义, testFun和number都是在用到的后面才定义**/
//其实在代码正真执行时 它会把同一个作用或内用 var 和 function 声明的变量和方法提到最前面
// 上面的代码就变成下面这样 testFun 和 number 都在全局作用域,所以直接提到代码最前面
function testFun(){
console.log(number);
}
var number;
testFun(); //这里在执行时number还没有赋值 所以就是 undefind
number = 123;