术语 |
解释 |
举例 |
关键字 |
在js中有特殊意义的词汇 |
let,var,function,if,else,switch,case,break |
保留字 |
在目前的js中没有意义,但未来可能会具有特殊意义 |
int,short,long,char |
标识(标识符) |
变量名,函数名的另一种叫法 |
无 |
表达式 |
能产生值的代码,一般配合运算符出现 |
10 + 3,age >= 18 |
语句 |
一段可执行的代码 |
if() for() |
基本数据类型和引用数据类型
- 简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型
- 值类型:简单数据类型/基本数据类型.在存储变量中存储的是值本身,因此叫做值类型
- string,number,boolean,undefined,null
- 引用类型:复杂数据类型,在存储时变量中存储的仅仅时地址(引用),因此叫做引用数据类型
- 通过new关键字创建的对象(系统对象,自定义对象),如object,Array,Date等
堆栈空间区别:
1.栈(操作系统):由操作系统自动分配释放存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈;
简单数据类型存放在栈里面
2.堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收.
引用数据类型存放到堆里面
栈和堆的区别:
1、堆栈空间分配区别
- 栈(操作系统):由操作系统(编译器)自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
- 堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
2、堆栈缓存方式区别
- 栈使用的是一级缓存, 它们通常都是被调用时处于存储空间中,调用完毕立即释放。
- 堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
3、堆栈数据结构区别
- 堆(数据结构):堆可以被看成是一棵树,如:堆排序。先进先出的结构。
- 栈(数据结构):一种先进后出的数据结构。
堆和栈的区别
- 堆和栈的区别主要有五大点,分别是:
- 1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟;
- 2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大;
- 3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢;
- 4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其中静态变量是不入栈的。而堆一般是在头部用一个字节存放堆的大小,堆中的具体内容是人为安排;
- 5、底层不同。栈是连续的空间,而堆是不连续的空间。