函数词法作用域
1、函数作用域:函数内部创建的变量,以及参数都属于局部变量
2、函数提升:允许先调用后声明
add()
function add(){ }
3、函数内变量提升:变量的声明移到作用域最前面
var str = "123"; function add1() { console.log(str) // underfined var str = "456"; } add1()
这里str 的值为undefined , 因为在词法分析完,构建函数作用域链的时候,函数局部变量已经声明未进行赋值,函数内部都是可见的。