JS 作用域
定义:代码名字的有效范围
目的:提高代码可靠性,避免命名冲突
辨析:
全局作用域:范围 == 整个Script 标签 | 单独的JS 文件
局部作用域(函数作用域):在函数内部有效
不同作用域下,变量名可重复,且都有效;全局作用域的变量名在局部作用域内是有效的;
函数外部无法访问函数内部的变量(因为,函数内部的变量,在函数执行完毕以后,就会被释放掉);
函数内部,直接赋值的变量 = 全局变量, 例如:num = 10,没有 var;
全局变量:只有关闭浏览器时才会被销毁,占内存资源
局部变量:当程序执行完毕就会销毁,节约内存
- 块级作用域:用{}包起来的区域, = 块级作用域
- if (){} 内部声明的变量,If 之外也是可以使用的
作用域链:
函数嵌套,内部函数访问外部函数的变量,采取的是链式查找的方式
遵循就近原则, 只要上一级该变量有值,则去上一级,不会继续找更多层次的值
(以上内容参考如下文章优化)
https://www.cnblogs.com/signheart/p/3ca2afaca43d2dc69ce72c862a3ae81c.html