js中的数据类型

1. js中数据类型分为两种:

基本数据类型:Number, String, Boolean, Undefined, Null, ( es6中新增了 Symbel);

引用类型:除了基本类型以外的都是引用类型,Object, function, array ,Regexp(es6 新增Set, Map);

2. 数据类型的值存放位置及访问机制

1)堆 stack和栈heap

stack是自动分配的内存空间,由系统自动释放;heap是动态分配的内存,大小不一定会自动释放;

2)存放位置及访问机制

基本数据类型的值存放在栈中,数据大小确定,内存空间大小可以分配,直接按值存放,按值访问;

js中的数据类型

引用数据类型的值存放在堆内存中,变量只是保存在栈内存中的一个指针(指向堆内存中的引用地址);

js中的数据类型

3 数据类型的拷贝(主要是对象的深浅拷贝)

浅拷贝:1)$.extend(boolean,{}, obj)  boolean默认为false

2)Object.assign({}, obj)

3)JSON.parse(JSON.stringify(obj1))

4)js

js中的数据类型

深拷贝 $.extend(true,{}, obj)  ;

js实现

js中的数据类型

4 检测类型

typeof用来检测基本数据类型,instanceof用来检测引用数据类型

instanceof实现原理

js中的数据类型