1、Javascript变量可以保存两种不同数据类型的值:
- 基本类型值:指的是那些保存在栈内存中的简单数据段,包括5种基本数据类型:Undefined、Null、Boolean、Number和String;
- 引用数据类型值:指的是那些保存在堆内存中的对象,变量保存的是一个指针,该指针指向堆中对象保存的位置。
2、执行环境及作用域
执行环境(execution context,也称为作用域):定义了变量或函数有权访问的其它数据。
变量对象(variable object):与执行环境关联,环境中定义的所有变量和函数都保存在这个对象中。
作用域链(scope chain):当代码在一个环境中执行时,会创建由变量对象构成的一个作用域链。作用域链的前端始终是当前执行环境关联的变量对象,下一个变量对象来自包含环境,一直延续到全局执行环境。全局执行环境的变量对象始终都是作用域的最后一个对象。
作用域示例:
以上代码共涉及3个执行环境:全局环境、changeColor()的局部环境和swapColors()的局部环境。
本文深入解析JavaScript中的基本类型值与引用数据类型值,同时详细阐述执行环境、变量对象与作用域链的概念,通过代码示例展示作用域的工作原理。

879

被折叠的 条评论
为什么被折叠?



