JavaScript 中主要有八种类型的值,包括七种原始类型(Primitive Types)和一种对象类型(Object Types)。这八种类型分别是:
- Number:表示数字,包括整数和浮点数。如:
42
,3.14159
。 - BigInt:表示任意大的整数。这是一种在 ES2020 中引入的新类型,用于表示比
Number.MAX_SAFE_INTEGER
更大的整数。如:123456789123456789n
。 - String:表示文本数据或字符序列。如:
"Hello, World!"
。 - Boolean:表示真或假。只有两个值:
true
和false
。 - Null:表示一个空值或不存在的对象。只有一个值:
null
。 - Undefined:表示未定义。当变量被声明了,但没有赋值时,其值就是
undefined
。 - Symbol:表示独一无二且不可变的数据类型,常用于对象的唯一属性键。如:
Symbol('myKey')
。 - Object:表示复杂的数据结构,是属性和方法的集合。如:
{name: 'John', age: 30}
,[1, 2, 3, 4, 5]
(数组也是对象的一种)。
关于内存图,由于我无法直接绘制图形,我将尝试用文字描述一下这些类型值在内存中的大致表示:
- 原始类型(Number, BigInt, String, Boolean, Null, Undefined, Symbol)的值直接存储在变量所指向的内存位置中。这意味着,当你把一个原始类型的值赋给另一个变量时,实际上是在复制这个值。
- 对象类型(Object)的值则是存储在堆(Heap)内存中的。变量实际上存储的是一个指向堆内存中对象位置的指针。当你把一个对象赋给另一个变量时,实际上是在复制这个指针,而不是对象本身。因此,两个变量将指向同一个对象。
这种内存管理方式有助于理解 JavaScript 中的一些关键概念,如变量的赋值、比较(== 和 ===)以及垃圾回收等。
请注意,虽然这里给出了一个简化的内存模型描述,但实际的 JavaScript 引擎(如 V8、SpiderMonkey 等)会使用更复杂的优化技术来提高性能并减少内存占用。
标签:表示,变量,对象,画出,JavaScript,内存,类型 From: https://www.cnblogs.com/ai888/p/18676174