1. 堆heap
和栈stack
的区别
在计算机领域中,堆栈是两种数据结构,它们只能在一端(称为栈顶(top))对数据项进行插入和删除。
堆:队列优先,先进先出;由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
栈:先进后出;动态分配的空间 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
以上都属于计算机基础部分,在此都不详细赘述了,下面我们联系JavaScript来剖析一下堆栈。
2. JavaScript变量类型
JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值
JavaScript的数据类型有六种,包括5种基本类型和1种引用类型:
- 基本类型
Undefined
Null
Boolean
Number
String
- 引用类型
Object
基本类型值和引用类型值具有以下特点:
- 基本类型值在内存中占据固定大小的空间,因此被保存在
栈(stack)
内存- 从一个变量向另外一个变量复制基本类型的值,会创建这个值的一个副本;
- 引用类型的值是对象
关于typeof与instanceof的区别