Javascript的变量与作用域

本文深入解析JavaScript中的基本类型值与引用数据类型值,同时详细阐述执行环境、变量对象与作用域链的概念,通过代码示例展示作用域的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Javascript变量可以保存两种不同数据类型的值:

  • 基本类型值:指的是那些保存在栈内存中的简单数据段,包括5种基本数据类型:Undefined、Null、Boolean、Number和String;
  • 引用数据类型值:指的是那些保存在堆内存中的对象,变量保存的是一个指针,该指针指向堆中对象保存的位置。

 

2、执行环境及作用域

执行环境(execution context,也称为作用域):定义了变量或函数有权访问的其它数据。

变量对象(variable object):与执行环境关联,环境中定义的所有变量和函数都保存在这个对象中。

作用域链(scope chain):当代码在一个环境中执行时,会创建由变量对象构成的一个作用域链。作用域链的前端始终是当前执行环境关联的变量对象,下一个变量对象来自包含环境,一直延续到全局执行环境。全局执行环境的变量对象始终都是作用域的最后一个对象。

 

作用域示例:

 

以上代码共涉及3个执行环境:全局环境、changeColor()的局部环境和swapColors()的局部环境。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值