JavaScript 数据类型
常见的 ES5 数据类型分为基本数据类型、引用数据类型两种。包含字符串、数字、对象、数组、函数、布尔值、空值、未知。
基本数据类型
String 类型(字符串)
javascript
var name = 'xiaoming'var name = 'xiaoming'Number 类型(数字)
javascript
var age = 20var age = 20Boolean 类型(布尔值)
javascript
var isXiaoMing = truevar isXiaoMing = trueNull 类型(空值)
javascript
var name = nullvar name = nullUndefined 类型(未知、找不到)
javascript
var name = undefinedvar 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 = bvar a = 'xiaoming'
var b = 'libai'
var c = b栈
| 变量名 | 变量类型 | 变量值 |
|---|---|---|
| a | String | "xiaoming" |
| b | String | "libai" |
| c | String | "libai" |
引用类型存储方式
复制的是指针地址,但是两个地址都是指向同一个数据。
javascript
var obj1 = { name: 'xiaoming', age: 18 }
var obj2 = obj1var obj1 = { name: 'xiaoming', age: 18 }
var obj2 = obj1栈
| 变量名 | 变量类型 | 变量值 |
|---|---|---|
| a | Object | 0x000001 |
| b | Object | 0x000001 |
堆
| 地址名称 | 属性 name | 属性 age |
|---|---|---|
| 0x000001 | "xiaoming" | 18 |
