主页
通常来说,一段代码中所用到的名字并不总是有效和可用的,而限定这名字的可用性的代码范围就是这个名字的作用域
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突

全局作用域

全局有效
作于所有代码执行的环境(整个script标签内部)或者是一个单独的js文件

局部作用域

局部有效
作用于函数内的代码环境,就是局部作用域。因为跟函数有关系,也称为函数作用域

块级作用域

{ }内有效
块级作用域由{ }包括,if语句和for语句里面的{ }等

全局变量

函数外部let的变量
全局变量在任何区域都可以访问和修改

局部变量

函数内部let的变量
局部变量只能在当前函数内部访问和修改

块级变量

{ }内部的let变量
let定义的变量,只能在快作用域里访问,不能跨块访问,也不能跨函数访问

作用域链

  • 如果函数中还有函数,那么这个作用域中就又可以诞生一个作用域
  • 根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称做作用域链
函数内部的变量,只能给内部使用,函数外面不能使用
嵌套的函数,里层嵌套的函数可以使用外层函数的变量,外层的函数无法使用里层函数的变量
如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也当 全局变量 来看
函数内部的形参可以看作是局部变量

JavaScript

版权属于:Joe
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
0

目录

来自 《JS-作用域》
评论

qiaofugui

博主很懒,啥都没有
188 文章数
14 评论量
3 分类数
191 页面数
已在风雨中度过 2年131天9小时28分