01作用域与作用域链
1.作用域
学习目标:了解作用域对程序执行的影响以及作用域链的查找机制,使用闭包函数创建隔离作用域避免全局变量污染
作用域规定了变量能够被访问的范围,离开了这个范围变量便不能被访问
作用域分为:
局部作用域
函数作用域 :在函数内部声明的变量只能在函数内部被访问。外部无法直接访问
总结:函数内部声明的变量。在函数外部无法访问
函数的参数也是函数内部的局部变量
不同函数内部声明的变量无法相互访问
函数执行完毕后,函数内部的变量实际被清空了
块作用域:在JS中 被 {}包围的,代码块内部声明的变量外部将有可能无法被访问
总结:for 、if 有块作用域
let 声明的产生块作用域 var不会产生块作用域
不同代码块之间无法相互访问
全局作用域
script 标签和js文件的最外层就是全局作用域
window对象动态添加的属性默认也是全局的
函数中未使用任何关键词声明的变量为全局变量
2.作用域链
作用域链的本质是底层的变量查找机制
在函数执行时,会优先找到当前函数作用域中查找变量
如果当前作用域查不到会依次查看父级作用域直到全局作用域
总结:嵌套关系的作用域串联起来形成了作用域链
子作用域链能够访问父作用域,父级作用域链无法访问子作用域链的变量、
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)