常见的 ES5 数据类型分为基本数据类型、引用数据类型两种。包含字符串、数字、对象、数组、函数、布尔值、空值、未知。

基本数据类型

String 类型(字符串)

  1. var name = 'xiaoming'

Number 类型(数字)

  1. var age = 20

Boolean 类型(布尔值)

  1. var isXiaoMing = true

Null 类型(空值)

  1. var name = null

Undefined 类型(未知、找不到)

  1. var name = undefined

引用数据类型

Object 类型(对象)

  1. var person = {
  2. name: 'xiaoming',
  3. age: 20,
  4. };

Array 类型(数组)

  1. var names = ['xiaoming', 'xiaohong']

Function 类型(函数)

  1. function toEat() {
  2. return '我会吃饭';
  3. }

以上两种数据类型的区别?

基本数据类型和引用数据类型的区别在于它们在内存中存储的方式不同(有点偏向计算机原理了,理解起来可能没那么容易),基本数据类型的数据是存储在栈中,而引用类型的数据是存储在堆中。

基本类型存储方式
复制出来独立的一个值。

  1. var a = "xiaoming"
  2. var b = "libai"
  3. var c = b

image.png

引用类型存储方式
复制的是指针地址,但是两个地址都是指向同一个数据。

var obj1 = { name : "xiaoming", age : 18 }

var obj2 = obj1

image.png

对象拷贝的方式

  • 浅拷贝只拷贝对象的一层属性
  • 深拷贝无论对象有多深的层级,都能拷贝