变量声明提升
在 JavaScript 中,函数声明(function aa(){})与变量声明(var)经常被 JavaScript 引擎隐式地提升到当前作用域的顶部。
函数声明的优先级高于变量,如果变量名跟函数名相同且未赋值,则函数声明会覆盖变量声明
声明语句中的赋值部分并不会被提升,只有变量的名称被提升
作用域链
因为函数的嵌套形成作用域的层级关系。当函数执行时,从当前作用域开始搜,没有找到的变量,会向上层作用域查找,直至全局函数,这就是作用域链。
在 JavaScript 中,作用域为 function(){}内的区域,称为函数作用域。
全局函数无法查看局部函数的内部细节,但局部函数可以查看其上层的函数细节,直至全局细节
网友评论