javascript-作用域
作用域
通常来说,就是代码名字(变量)在某个范围内起作用和效果
目的:为了提高程序的可靠性,避免命名冲突
js作用域(es6)之前:全局作用域 局部作用域
<script> //全局作用域:整个script标签 或者一个单独的js文件 var num = 10; console.log(num); //局部作用域(函数作用域) 在函数内部就是局部作用域 这个代码的名字只在函数内部起效果 function fn() { //局部作用域 var num = 20; console.log(num); } fn(); </script>
注:如果在函数内部没有声明直接赋值的变量也属于全局变量
注:函数的形参也是局部变量。
从执行效率来看
- 全局变量只有浏览器关闭的时候才会销毁,比较占用内存
- 局部变量,当我们程序执行完毕之后就会销毁,节约资源
作用域链
根据内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据被内部函数访问,就称为作用域链。
//作用域链:内部函数访问外部函数的变量,采用的是链式查找,来决定
var num =10;
function fn(){//外部函数
var num =20;
function fun(){//内部函数
console.log(num);
}
}
站在目标 出发,一层一层往外查找
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?