函数的作用域(就是代码名字(变量)在某个范围内起作用和效果 目的就是为了提高程序的可靠性更重要的是减少命名冲突)
- 全局作用域
函数的外部 整个script标签,或者是一个单独的js 文件
- 局部作用域
局部作用域(函数作用域)在函数内部就是局部作用域 这个代码的名字只在函数内部起作用
变量作用域
- 全局变量
1.在函数外面声明的变量
2.如果在函数内部 没有声明直接赋值的变量也属于全局变量
- 局部变量
在函数内部的变量就是局部变量
//函数的形参可以看做局部变量
从执行效率来看全局变量和局部变量
(1)全局变量只有浏览器关闭的时候才会销毁,比较占内存资源‘
(2)局部变量当我们程序执行完毕就会销毁,比较节约内存资源
作用域链
定义:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称作作用域链
就近原则
1.只要是代码,就至少有一个作用域
2.写在函数内部的局部作用域
3.如果函数中还有函数,那么在这个作用域中就又可能诞生一个作用域
4.根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作作用域链