作用域整体理解:
JS作用域分为函数作用域,全局作用域,with和try catch形成的块级作用域。
JS引擎在编译阶段,在每个作用域中会查找以var开头的变量声明还有以function开头的函数声明,并把他们放到作用域顶端,在这个过程中,函数优先。之后再把当前作用域和其它有关联的作用域结合起来。
细节:
函数声明和函数表达式的区别:
函数声明是以function关键字开头的,必须有名字;
函数表达式是以(function 或者 var xxx = function 开头的,不必有名字,但是为了调试方便,可以加上名字,这种情况下叫做行内函数表达式。
网友评论