1.以函数为作用域
function func(){
if(1==1){
var name='alex'
}
console.log(name)
}
func()
2.函数的作用域在函数未被调用之前,已经创建
function func(){
if(1==1){
var name='alex'
}
console.log(name)
}
3.函数的作用域存在作用域链,并且在未被调用前创建
xo = 'alex';
function func(){
var xo = 'eric';
function inner(){
console.log(xo)
}
var xo = 'tony'
return inner
}
var ret=func()
ret()
4.函数内局部变量提前申明
function func(){
console.log(xxoo);
var xxoo = 'alex'
}
解释过程中 : var xxoo;
func();