基本类型和引用类型
作者:互联网
基本类型
基本数据类型包含: Number(数值)、String(字符串)、Boolean(布尔值)、Null、Undefined、Symbol(ES6引入的,表示独一无二的),具有以下特点:
(1)基本类型的访问是按值访问的;
(2)不能添加属性和方法;
(3)基本类型的变量是存放在栈区的,包括变量标识符和变量的值(栈区不会设值太大,主要用来存放基本类型);
(4)基本类型的复制就是在栈内存中开辟一个新的存储区域来存储新的变量;
(5)基本类型的比较是值的比较
引用类型
包含三类:
基本引用类型: Object(对象)、Array、RegExp、Date、Function
基本包装类型:String、Number、Boolean
单体内置对象:Global、Math
具有以下特点:
(1)引用类型的值是按引用访问的;
(2)引用类型可以拥有属性和方法,且可动态改变;
(3)存储需要内存的栈区和堆区,其中栈区保存变量标识符和指向内存中该对象的指针;
(4)引用类型的比较是引用的比较;
(5)引用类型的复制将复制引用地址
为什么需要 栈、堆 存储空间
因为JS引擎需要用栈来维护程序执行期间上下文的状态(调用栈),如果栈空间太大的话,会影响上下文的切换效率,进而影响整个程序的执行效率。
因此一般栈空间不会设置太大,存储基本类型的小数据,引用类型存储到堆中。
标签:基本,栈区,存储,变量,引用,类型 来源: https://www.cnblogs.com/bluebones/p/16060558.html