方法名 | 操作 |
---|---|
push() | 添加新元素到栈顶 |
pop() | 移除栈顶的元素,同时返回被移除的元素 |
class Stack {
private item = []
// 添加元素在栈顶,也就是栈的末尾
push(el) {
this.push(el)
}
// 栈先进后出原则,从栈顶出栈
pop() {
return this.item.pop()
}
}
代码的运行方式
function one() {
function two() {
function three() {
debugger;
}
three();
}
two();
}
one();
内存区域
- 栈也是存放数据的一种内存区域
- 程序运行的时候,需要内存空间存放数据,一般来说系统会划分出两种不同的内存空间:一种叫做栈stack,另一种叫做堆heap
- stack是有结构的,每个区块按照一定次序存放,可以明确知道每个区块的大小
- heap是没有结构的,数据可以任意存放,因此,stack的寻址速度要快于heap
- 只要是局部的,占用空间确定的数据,一般是存放在栈中,否则放在堆里,所有对象都放在堆里面
function task() {
var a = 1;
var b = 2;
var c = {
name: 'zhufeng',
age: 10
}
}
task();
js的基本类型:
基本数据类型:null undefined string number boolean symbol
引用数据类型:Object Array Regex
js属于弱数据类型,不要明显的区分是存放在栈里还是堆里