一、分类
在JavaScript中,数据类型可以分为两大类:原始数据类型(Primitive Types)和引用数据类型(Reference Types)。
1. 原始数据类型(Primitive Types):
-
Number(数字):表示整数或浮点数。例如:
let num = 42;
-
String(字符串):表示文本。例如:
let str = 'Hello';
-
Boolean(布尔):表示真或假。例如:
let isTrue = true;
-
Undefined(未定义):表示未初始化的变量。例如:
let undefinedVar;
-
Null(空):表示空值。例如:
let nullValue = null;
-
Symbol(符号,ES6新增):表示独一无二的值。例如:
let symSymbol('unique');
2. 引用数据类型(Reference Types):
-
Object(对象):表示键值对的集合。例如:
let obj = { key: 'value' };
-
Array(数组):表示有序的列表。例如:
let arr = [1, 2, 3];
-
Function(函数):表示可调用的代码块。例如:
function greet() { console.log('Hello!'); }
-
Date(日期):表示日期和时间。
二、存储上的差别:
原始数据类型:在内存中按值存储,每个变量都有自己的内存空间,修改一个变量不会影响其他变量。
引用数据类型:在内存中存储的是引用地址,多个变量可能共享同一个引用地址,因此修改一个变量可能会影响其他变量。
// 原始数据类型
let num1 = 42;
let num2 = num1;
num1 = 55;
console.log(num1); // 输出 55
console.log(num2); // 输出 42// 引用数据类型
let arr1 = [1, 2, 3];
let arr2 = arr1;
arr1.push(4);
console.log(arr1); // 输出 [1, 2, 3, 4]
console.log(arr2); // 输出 [1, 2, 3, 4]