javascript:简单的了解一下作用域

了解作用域

先从字面上看,作用域是什么意思?
‘作用’:就是可以生效,可以使用的意思。
‘域’:范围。
‘作用域’:可以生效的范围。
简单来说,作用域就是变量与函数的可以使用、可以生效的范围。

1.全局作用域与私有作用域

全局作用域
定义:任何地方都能访问到的对象拥有全局作用域。
一个 html 页面就是一个全局作用域,打开页面的时候, 作用域就生成了, 直到关闭页面为止。

局部作用域(私有作用域)
定义:局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,每一个函数就是一个私有作用域

两种作用域的上下级关系
全局作用域最大, 所有的私有作用域都是在全局作用域下面的,函数生成的私有作用域, 函数写在那个作用域里面,
就是哪个作用域的子级

在这里插入图片描述在这里插入图片描述

作用域的三大规则*

1.变量定义规则
当你在定义一个变量的时候,你把这个变量定义在哪个作用域里面,就只有这个作用域及其后代作用域可以使用,当前作用域的所有祖先级作用域不能使用。
变量定义规则

2.变量的使用规则
当你需要使用一个变量的时候,首先, 在自己作用域内部查找, 如果有, 就直接使用, 停止查找,如果没有, 就去上一级作用域查找, 有就使用, 停止查找,以此类推…直到全局作用域都没有, 那么就报错 “变量 is not defined”
变量的使用规则

3.变量赋值规则

当你需要给一个变量赋值的时候,先在自己作用域内部查找, 如果有, 就给自己作用域内部的变量赋值,如果没有, 就向上一级查找, 如果有就给父级的变量赋值,以此类推,直到全局作用域都没有, 那么就把这个变量定义为全局变量, 再进行赋值
变量赋值规则

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页