JavaScript中的堆和栈

1. 堆heap和栈stack的区别

在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除。

堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
栈:先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
以上都属于计算机基础部分,在此都不详细赘述了,下面我们联系JavaScript来剖析一下堆栈。

2. JavaScript变量类型

JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值

JavaScript的数据类型有六种,包括5种基本类型和1种引用类型:

  • 基本类型
    • Undefined
    • Null
    • Boolean
    • Number
    • String
  • 引用类型
    • Object

基本类型值和引用类型值具有以下特点:

  • 基本类型值在内存中占据固定大小的空间,因此被保存在栈(stack)内存
  • 从一个变量向另外一个变量复制基本类型的值,会创建这个值的一个副本;
  • 引用类型的值是对象
    关于typeof与instanceof的区别
上一篇:微信公众号开发(1)——简介


下一篇:我的计划