Skip to content

JavaScript 数据类型

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

基本数据类型

String 类型(字符串)

javascript
var name = 'xiaoming'
var name = 'xiaoming'

Number 类型(数字)

javascript
var age = 20
var age = 20

Boolean 类型(布尔值)

javascript
var isXiaoMing = true
var isXiaoMing = true

Null 类型(空值)

javascript
var name = null
var name = null

Undefined 类型(未知、找不到)

javascript
var name = undefined
var name = undefined

引用数据类型

Object 类型(对象)

javascript
var person = {
    name: 'xiaoming',
    age: 20
}
var person = {
    name: 'xiaoming',
    age: 20
}

Array 类型(数组)

javascript
var names = ['xiaoming', 'xiaohong']
var names = ['xiaoming', 'xiaohong']

Function 类型(函数)

javascript
function toEat() {
    return '我会吃饭'
}
function toEat() {
    return '我会吃饭'
}

以上两种数据类型的区别

注意

以下概念有点偏向计算机原理了,理解起来可能没那么容易。

基本数据类型和引用数据类型的区别在于它们在内存中存储的方式不同,基本数据类型的数据是存储在栈中,而引用类型的数据是存储在堆中。

基本类型存储方式

复制出来独立的一个值。

javascript
var a = 'xiaoming'
var b = 'libai'
var c = b
var a = 'xiaoming'
var b = 'libai'
var c = b

变量名变量类型变量值
aString"xiaoming"
bString"libai"
cString"libai"

引用类型存储方式

复制的是指针地址,但是两个地址都是指向同一个数据。

javascript
var obj1 = { name: 'xiaoming', age: 18 }
var obj2 = obj1
var obj1 = { name: 'xiaoming', age: 18 }
var obj2 = obj1

变量名变量类型变量值
aObject0x000001
bObject0x000001

地址名称属性 name属性 age
0x000001"xiaoming"18