1.作用域概述
通常来说,一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字的可用性代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字的冲突
代码在那个范围(区域内)可用的叫做作用域
分为三种:
1.全局作用域-全局有效:
作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的JS文件
2.局部作用域-局部有效:
作用于函数内都代码环境,就是局部作用域。因为跟函数有关也被称作函数作用域
3.块级作用域-{}内有效:
块级作用域由{ }包括,if 语句和 for 语句里面的{ }等
变量作用域:
在JS中,根据作用域的不同,变量可以分为以下三种:
1.全局变量-函数外部 let 的变量:
全局变量可以在任何区域都可以访问和修改
2.局部变量-函数内部 let 的变量:
局部变量只能和当前函数内部访问和修改
3.块级变量-{ }内部的 let 变量:
let定义的变量,只能在块作用域里访问,也不能跨函数访问
特殊情况:
局部变量或块级变量 没有 let 声明直接赋值的当全局变量看-----强烈不提倡
如果函数内部或者块级作用域内部,变量没有声明,直接赋值 ,也当全局变量看,但是强烈不推荐使用
但有一种情况,函数内部形参可以看做局部变量