基础数据类型与变量对象

最新的ECMAScript标准定义了7种数据类型。其中包括6种基础数据类型与一种引用数据类型(Object)。

其中基础数据类型详情如下表:

类型
Boolean 只有两个值:true 与 false
Null 只有一个值:null
Undefined 只有一个值:undefined
Number 所有的数字
String 所有的字符串
Symbol 符号类型 var sym = Symbol('testsymbol')

由于目前常用的浏览器版本还不支持Symbol,而且通过babel编译之后的代码量过大,因此在实践中个人建议暂时不要使用Symbol。

.

我们来探讨一个问题。有一个很简单的例子如下。

function fn() {
  var a1 = 10;
  var a2 = 'hello';
  var a3 = null;
}

现在我们需要思考的是,当我们运行函数fn时,它其中的变量a1, a2, a3都保存在什么地方了?

函数在运行时,会创建一个执行环境,我们管这个执行环境叫做执行上下文(Execution Context,我们会在后续的章节详细学习它)。在执行上下文中,会创建一个叫做变量对象(VO,后续章节详细学习)的特殊对象。基础数据类型往往都会保存在变量对象中。

变量对象也存在于堆内存中。但是由于变量对象的特殊职能,我们在理解时,建议仍然将其与堆内存空间区分开来。

results matching ""

    No results matching ""