javascript 的数据类型

128 阅读1分钟

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]

pic42.png

bigint 超出范围,无法在图中表示。