更新时间:2024-01-30 来源:黑马程序员 浏览量:
在JavaScript中,基本类型和复杂类型的数据都是存储在内存中的不同位置。
1.基本类型(Primitive Types):
(1)基本类型包括数字(Number)、字符串(String)、布尔值(Boolean)、null、undefined 和 Symbol。
(2)基本类型的值直接存储在栈内存中,栈内存是一种简单的内存结构,用于存储简单的数据和引用。
(3)当你创建一个基本类型的变量时,该变量直接存储变量值,而且它们是按值访问的,即变量直接包含其数据。
var num = 42; // 基本类型变量 var str = "Hello"; // 基本类型变量
2.复杂类型(Complex Types):
(1)复杂类型包括对象(Object)和数组(Array),还有函数(Function)等。
(2)复杂类型的值存储在堆内存中。堆内存是一种相对较大的、灵活的内存池,用于存储对象和复杂数据结构。
(3)复杂类型的变量实际上是存储在栈内存中的一个引用,该引用指向堆内存中实际的数据。
var obj = { key: "value" }; // 复杂类型变量,存储在堆内存中 var arr = [1, 2, 3]; // 复杂类型变量,存储在堆内存中
所以,基本类型是直接存储在栈内存中,而复杂类型是在栈内存中存储一个引用,实际数据存储在堆内存中。这种区别在涉及到赋值、传递参数和比较时会产生一些不同的行为。