0
点赞
收藏
分享

微信扫一扫

认识作用域

凯约 2022-03-14 阅读 56

作用域:

=> 变量(变量名/函数名) 的生效使用范围

作用域的分类

=> 全局作用域(window): 一个 html 页面打开就是一个全局作用域

=> 私有作用域: **只有函数生成私有作用域**

-> 只要你书写了一个函数, 就会生成一个私有作用域

-> 一经书写, 作用域永生不变

作用域的上下级关系

=> 书写在哪一个作用域内的函数, 就是哪一个作用域的子级作用域

提供了三个机制(熟读并背诵全文)

=> 变量定义机制

-> 定义在哪一个作用域下的变量, 就是哪一个作用域的私有变量

-> 只能在当前作用域以及后代作用域内使用

=> 变量访问机制

-> 当你需要访问某一个变量的值的时候

-> 首先在自己作用域内查找, 如果有, 直接使用, 停止查找

-> 如果没有, 自动去到父级作用域查找, 如果有直接使用, 停止查找

-> 以此类推, 直到全局作用域(window) 都没有, 那么直接报错, xxx is not defined

=> 变量赋值机制

-> 当你需要给某一个变量赋值的时候

-> 首先在自己作用域内查找, 如果有, 直接赋值, 停止查找

-> 如果没有, 那么自动去到父级作用域查找, 如果有直接赋值, 停止查找

-> 以此类推, 直到全局作用域(window) 都没有

-> 把这个变量定义为全局变量, 在进行赋值

*/

// 这段代码是在全局作用域下书写

console.log('我在全局作用域下')


 

// 在全局作用域下定义了一个叫做 fn1 的函数

function fn1() {

// 这里就是全局作用域下的一个 fn1 私有作用域

// 这里是在 fn1 私有作用域内书写的代码

function fn2() {

// 这里就是 fn1 私有作用域的 自己作用域

}

}

// 在全局作用域下定义了一个叫做 fn3 的函数

function fn3() {

// 这里就是全局作用域下的一个 fn3 私有作用域

}

// 例子:

// var a

// function fn1() {

// a = 100

// }

// fn1()

// function fn2() {

// // 我想在这里面使用 a 这个变量的值

// }

举报

相关推荐

0 条评论