2020-12-28

Day03作业 数据结构
概述 基本类型和引用类型
基本类型:String Boolean Number Null Undefined Symbol Bigint。

引用类型:Object(存储属性和属性值) Function。

数组(Array):有序的值的列表。
集合(Set):唯一值的集合。
特殊集合(WeakSet):特殊Set。
映射(Map):键值对。
特殊映射(WeakMap):特殊Map。

区别:

(内存存储)基本类型存储在栈(Stack)里面;引用类型在栈上存储对堆上数据的引用(指针),在堆(Heap)上存储引用类型本身的数据。
(清理方式)基本类型函数和方法执行完就清理内存;引用类型采用垃圾回收机制。
对象 存储属性和属性值
定义对象:

Object构造器在这里插入图片描述
对象字面量在这里插入图片描述
数组 有序的值的列表
(与其他编程语言相比)区别:

数组的每个槽位可以存储任意类型的数据。
动态大小 —— 影响性能。
定义数组:(声明)

数组构造器const oArray = new Array();
在这里插入图片描述
初始化:在这里插入图片描述
解构数组:将在这里插入图片描述
数组中的元素取出来赋值给变量。在这里插入图片描述
数组的属性和方法:

length属性:数组的长度。在这里插入图片描述
集合 唯一值的集合
当对象添加到Set中时,只要Set存在,它们就会一直存储在Set中,即使对对象的原始引用被删除了依然如此。用技术术语来说,就是对象阻止被垃圾回收,而这会导致内存泄漏。
WeakSet 通过垃圾回收任何引用原始引用已经被删掉的“死对象”,从而可以避免这种情况。
WeakSet 只能添加非基本类型数据,否则会抛出一个类型错误(TypeError)。在这里插入图片描述
Map 存储键值对列表
创建Map:

const romanNumerals = new Map();
romanNumerals.set(1,‘I’);
romanNumerals.set(2,‘II’).set(3,‘III’).set(4,‘IV’).set(5,‘V’);
console.log(romanNumerals);// Map { 1 => ‘I’, 2 => ‘II’, 3 => ‘III’, 4 => ‘IV’, 5 => ‘V’ }
1
2
3
4
方法和属性:

size属性:获取键和值的数量。(只读属性)
const romanNumerals = new Map();
romanNumerals.set(1,‘I’);
romanNumerals.set(2,‘II’).set(3,‘III’).set(4,‘IV’).set(5,‘V’);
console.log(romanNumerals.size);//WeakMap
键不能是基本数据类型的值,并且在对原始对象的引用被删除时,垃圾回收会自动删除所有死条目。 5!](https://img-blog.csdnimg.cn/2020122810294863.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0ODIzNzcw,size_16,color_FFFFFF,t_70)
在这里插入图片描述
总结
数据类型
基础类型:String Number Boolean Symbol undefined null。

引用类型:Object/Function。

对象
创建对象的两种方式
构造器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值