函数词法作用域

1、函数作用域:函数内部创建的变量,以及参数都属于局部变量

2、函数提升:允许先调用后声明

add()

function add(){ }

3、函数内变量提升:变量的声明移到作用域最前面

var str = "123";
function  add1() {
    console.log(str)  // underfined
    var str = "456";
}
add1()

这里str 的值为undefined , 因为在词法分析完,构建函数作用域链的时候,函数局部变量已经声明未进行赋值,函数内部都是可见的。

原文地址:https://www.cnblogs.com/yuyedaocao/p/12033742.html