JavaScript - 认识作用域及变量的三种形态

1. 作用域

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

2. 作用域的分类

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

- 私有作用域:⚠️只有函数生成私有作用域⚠️

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

         - 一旦书写,就会一直生效

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

3. 变量的三种机制

1. 变量定义机制

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

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

2. 变量访问机制

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

- 首先在自己作用域内查找,如果有直接使用并停止查找,如果没有,自动去到父级作用域查找,如果有自动使用并停止

- 依次类推直到全局作用域(window)都没有,就会报错,xxx is not defined

3. 变量赋值机制

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

- 首先在自己作用域内查找,如果有直接赋值并停止查找,如果没有就自动到父级作用域找,如果有直接赋值并停止

- 依次类推直到全局作用域(window)都没有

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

4. 变量的三种形态

1. 什么是变量定义?

- 必须是要有定义变量的关键字 var / function / ...

- 或者是函数的形参

var num
var num = 100
function fn() {}
function fn(a,b) {}

2. 什么是变量访问

- 需要拿到某一个变量所保存的值来使用(运算,输出,...)

num++
fn()
console.log(aaa)

3. 什么是变量赋值

- 给某一个变量进行赋值操作

- 有赋值符号,或者函数的实参

num += 10 等价于  num = num + 10
fn(10, 20)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值