基本类型主要为以下6种:

Number

String

Boolean

Undefined

1
2
3
Undefined 类型只有⼀个值,就是特殊值 undefined 。当使⽤ var 或 let 声明了变量但没

有初始化时,就相当于给变量赋予了 undefined 值

null

1
2
3
4
5
Null 类型同样只有⼀个值,即特殊值 null

逻辑上讲, null 值表⽰⼀个空对象指针,这也是给 typeof 传⼀个 null 会返回 "object" 的原


undefined 值是由 null 值派⽣⽽来

1
console.log(null == undefined); // true

symbol

引⽤类型

复杂类型统称为 Object ,我们这⾥主要讲述下⾯三种:

Object

Array

JavaScript 数组是⼀组有序的数据,但跟其他语⾔不同的是,数组中每个槽位可以存储任意类型

的数据。并且,数组也是动态⼤⼩的,会随着数据添加⽽⾃动增⻓

Fuction

函数实际上是对象,每个函数都是 Function 类型的实例,⽽ Function 也有属性和⽅法,跟其

他引⽤类型⼀样

1
2
3
4
• 箭头函数
let sum = (num1, num2) => {
return num1 + num2;
};

除了上述说的三种之外,还包括 Date 、 RegExp 、 Map 、 Set 等……

js数据结构

  1. 数组(Array)

  2. 栈(Stack)

  3. 队列(Queue)

  4. 链表(Linked List)

    1
    2
    3
    4
    5
    6
    7
    链表也是⼀种列表,已经设计了数组,为什么还需要链表呢?
    JavaScript中数组的主要问题时,它们被实现成了对象,
    与其他语⾔(⽐如C++和Java)的数组相对,效率很低。
    如果你发现数组在实际使⽤时很慢,就可以考虑使⽤链表来代替它。
    使⽤条件:
    链表⼏乎可以⽤在任何可以使⽤⼀维数组的情况中。
    如果需要随机访问,数组仍然是更好的选择。
  5. 字典

    1
    2
    3
    字典是⼀种以键-值对存储数据的数据结构,js中的Object类就是以字典的形式设计的。JavaScript可
    以通过实现字典类,让这种字典类型的对象使⽤起来更加简单,字典可以实现对象拥有的常⻅功能,
    并相应拓展⾃⼰想要的功能,⽽对象在JavaScript编写中随处可⻅,所以字典的作⽤也异常明显了。
  6. 散列表(Hash table)

    特点是在散列表上插⼊、删除和取⽤数据都⾮常快

  7. 树(Tree)

  8. 图(Graph)

  9. 堆(Heap)