1.作用域:
执行js的区域,与其他由"{}"分割区域的语言不通,js是有由function来划分区域的,分为全局和局部。
2.作用域链:
访问变量时会优先当前作用域,当该作用域内无目标变量时会向该作用域之外的域内查找变量,搜索区域由当前作用域转向另一个作用域的过程成为作用域链。、
3.浏览器解析js流程
每当js运行到一个新的域时,会产生以下两种操作。
(1)预解析
首先在全局内搜寻var function 等关键字,然后为var声明的变量赋予undefined,function不做处理。
(2)从第一行逐行运行
在此过程中,表达式会为变量赋值。
由于js中域室友函数分割,因此运行过程中如果遇到函数调用,则会再次运行以上两种操作,此过程中函数的参数等价于局部变量。