10 作用域

64 阅读2分钟

作用域

作用域 : 就是代码名字在某个范围内起作用和效果

目的 : 为了提高程序的可靠性,更重要的是减少命名冲突

es6之前作用域分两类

全局作用域

整个 script标签 或者一个单独的js文件

image.png

局部作用域

在函数内部 就是局部作用域 ;这个代码名字只在函数内部起效果和作用

image.png

块级作用域

在es6之后新增的块级作用域 , 现阶段没有块级作用域

变量的作用域

全局变量

在全局作用域下的变量,在任何位置都可以使用

image.png

用var声明

在全局作用域下,用var 声明的变量是全局变量

image.png

特殊 在函数内部不使用var声明的变量

image.png

局部变量

在局部作用域下声明的变量

局部变量只能在函数内部使用

函数内部用var声明

在函数内部用var声明的变量是局部变量

image.png

函数的形参

函数的形参实际是局部变量

image.png

执行效率

全局变量只有浏览器关闭的时候才会销毁,比较占内存

局部变量 当程序执行完毕后就会销毁,比较节约内存资源

作用域链 就近原则

  1. 只要是代码,就至少有一个作用域

image.png

  1. 函数内部的叫局部作用域

image.png

  1. 函数内部还有函数,那么这个作用域中就又产生了一个新的作用域

image.png

  1. 为内部函数可以访问外部函数变量,所以 可以用链式的方式查
image.png

所以 作用域链 就是内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值