javascript 数据类型分为两类:一类是基本数据类型,也称之为简单数据类型,另一类是引用数据类型,也叫做复杂数据类型。
基本数据类型(简单数据类型)
基本数据类型只有一块存储空间,声明的变量会指向这个空间,在栈中存放的是具体的值,占用空间小。
- number
- boolean
- string
- undefined
- bigint
- symbol
- object Null
引用数据类型(复杂数据类型)
引用数据类型它有两块存储空间,一个在栈中,一个在堆中。栈中存放的是地址(也可称之为指针),通过这个地址指向堆中的内容。
- Object
- Array
- Function
- RegExp
- Date
- Math
代码和图例注解
// 基本数据类型(简单数据类型)
let a = 29;
let b = true;
let c = 'hello world';
let d = 93n;
let e = undefined;
let f = Symbol('f');
let g = null;
console.log(typeof a); // number
console.log(typeof b); // boolean
console.log(typeof c); // string
console.log(typeof d); // bigint
console.log(typeof e); // undefined
console.log(typeof f); // symbol
console.log(Object.prototype.toString.call(g)); // [object Null]
// 引用数据类型(复杂数据类型)
let h = {age: 29};
let list = [3, 7, 12];
let fn = () => {
return '我是一个函数';
}
let reg = new RegExp('/\d/g');
let time = new Date();
let z = Math;
console.log(Object.prototype.toString.call(h)); // [object Object]
console.log(Object.prototype.toString.call(list)); // [object Array]
console.log(Object.prototype.toString.call(fn)); // [object Function]
console.log(Object.prototype.toString.call(reg)); // [object RegExp]
console.log(Object.prototype.toString.call(time)); // [object Date]
console.log(Object.prototype.toString.call(z)); // [object Math]
bigint 超出范围,无法在图中表示。