【JS算法】JS数据结构

JavaScript012

【JS算法】JS数据结构,第1张

数组: 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储。知道第一个元素的内存地址,加上下标(偏移量)就能找到第2或N个。

数组随机访问的速度快,增加和删除则慢(因为删除index2,后面的3-n都要往前挪一位)

链表: 非连续存储的指向型存储,随机访问的速度慢(需一层层查找),增加和删除则快(不需要挪位)

树形结构、图形结构

树形结构又指向其他树点,就是图形结构

图结构,在webpack和vite中有用到,作用是,能找出是否有文件被重复加载

堆和栈

对象是数组+链表的结构

只要是树形结构,解答基本都可以用递归解决

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。

1、Number类型

Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。

2、String类型

在JS中字符串需要使用引号引起来。使用双引号或单引号都行,但是不要混着用。引号不能嵌套,双引号不能放双引号,单引号不能放单引号。

3、Boolean类型

该类型只有两个值,true和false。

4、Undefined类型

只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

5、Null类型

null类型被看做空对象指针,null类型也是空的对象引用。

6、Object类型

js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

1.JavaScript 的对象(Object),本质上是键值对的集合(Hash结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制。

2.类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。

3.如果对同一个键多次赋值,后面的值将覆盖前面的值。

4.只有对同一个对象的引用,Map 结构才将其视为同一个键。Map 的键实际上是跟内存地址绑定的,只要内存地址不一样,就视为两个键。这就解决了同名属性碰撞(clash)的问题。

5.如果 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键.