JS的词法作用域

时间:2023-03-09 20:33:17
JS的词法作用域

词法作用域定义实现的规则:

1 函数作用域实在定义的时候决定的,而不是在执行时候决定

2 为了实现这种词法作用域,函数内部不仅包含函数代码逻辑,还必须引用当前的作用域链。

3 函数对象可以通过作用域链相互关联起来,函数内部的变量都可以保存在函数作用域内。

变量作用域:变量的作用域是程序源代码中定义这个变量的区域。

1在函数内部,局部变量的优先级要高于同名的全局变量。

2 JS是函数作用域

3 函数作用域:变量在声明它的函数体内以及该函数内部嵌套的函数体内都有定义。

4 JS的函数作用域指的是:在函数内声明的所有变量在函数体内始终是可见的。

5 作为属性的变量:使用var声明的变量不可配置

6 局部变量可以看做是某个局部对象的属性

7 如果把一个局部变量看做是一个局部自定义对象的属性的话,那么每段javascript代码都有与之相关联的作用域链。并且作用域链是由一些列的对象组成,这个作用域链定义了变量的范围。

8 当定义一个函数时,它实际保存了一个作用域连,当调用这个函数时,它创建了一个新的对象来存储她的局部变量,并将这个对象添加至保存的那个作用域脸上,同时创建一个新的更长的表示函数调用的作用域“链”

9 对象则没有闭包这一特性。