# 数据类型
# 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
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
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
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
2
3
4
5
6
7
8
9
10
11
12
13
14