# 数据类型

# 1.数据分类

基本数据类型

  • number
  • string
  • boolean
  • undefined
  • null
  • symbol

引用数据类型

  • object
  • array
  • function

# 2.数据判断

# 3.数据转换

# 4.数据结构

# 4.1 栈

  • 栈者,存储货物或供旅客住宿的地方,可引申为仓库

# 4.1.1 数据结构中的栈

  • 栈是一组数据的存放方式,特点是先进后出,后进先出
class Stack {
  private item:number [] = []
  push(element:number) {
    this.items.push(element)
  }
  pop():number {
    return this.items.pop()
  }
}
let stack = new Stack()
stack.push(1)
stack.push(2)
stack.push(3)
console.log(stack.pop())
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 4.1.2 代码的运行方式

  • 表示函数的一层层调用
function one() {
  function two() {
    function three() {
      debugger;
    }
    three();
  }
  two();
}
one();
1
2
3
4
5
6
7
8
9
10

# 4.1.3 内存区域

  • 栈也是存放数据的一种内存区域
  • 程序运行的时候,需要内存空间存放数据。一般来说,系统会划分出两种不同的内存空间:一种叫做 stack,另一种叫做 heap
    • stack 是有结构的,每个区块按照一定的次序存放,可以明确知道每个区块的大小
    • heap 是没有结构的,数据可以任意的存放。因此,stack 的寻址速度要快于 heap
  • 只要是局部的、占用空间确定的数据,一般都存放在 stack 里面,否则就放在 heap 里面,所有的对象都存放在 heap
function task() {
  var a = 1;
  var b = 2;
  var c = {
    name: "zhangsan",
    age: 10,
  };
}
task();
1
2
3
4
5
6
7
8
9

# 4.2 队列

  • 队列是一种操作受限制的线性表
  • 特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作
  • 进行插入操作的称为队尾,进行删除操作的端称为队头
  • 因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出线性表
class Queue{
  private items: number[] = []
  enqueue(element:number){
    this.item.push(emement)
  }
  dequeue(){
    return this.items.shift()
  }
}
let queue = new Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
console.log(queue.dequeue())
1
2
3
4
5
6
7
8
9
10
11
12
13
14