收录了这篇文章
JavaScript 中有几种基本的数据类型(也称为原始类型),包括 undefined、null、boolean、number、bigint、string、symbol(ES6 引入)。
除了这些原始类型,JavaScript 还有引用类型或对象类型,它们在内存中是以引用的方式存储的。这些类型的值不是简单地存储在变量中,而是存储了指向这些数据实际存放在内存中的位置的引用(地址)。因此,当你操作引用类型的变量时,实际上是在操作这个引用
以下是 JavaScript 中主要的引用类型:
-
Object(对象): 对象是键值对的集合,其中键(key)是字符串或 Symbols,值(value)可以是任意数据类型,包括其他对象。对象可以用来组织和封装数据及其相关的行为(方法)。
-
Array(数组): 数组是一种特殊类型的对象,其键是基于整数的索引,用于存储有序的数据集合。尽管从技术上讲数组是对象,但它们通常被视为单独的类型,因为它们具有特殊的行为和方法(如 push, pop, slice 等)。
-
Function(函数): 在 JavaScript 中,函数也是对象,可以被赋值给变量、作为参数传递给其他函数或作为其他函数的返回值。函数可以有自己的属性和方法。
-
Date(日期): 用于处理日期和时间,提供了多种方法来获取和设置日期/时间、进行日期运算等。
-
RegExp(正则表达式): 用于匹配字符串中的模式,执行强大的文本搜索和替换操作。
-
Error(错误对象): 当 JavaScript 运行时发生错误时,会抛出一个错误对象,它包含了错误的描述和堆栈跟踪等信息。
引用类型的特点
-
共享与复制: 当你把一个引用类型赋值给另一个变量时,实际上是复制了该引用(内存地址),而不是对象本身。因此,两个变量最终指向的是同一块内存区域,修改其中一个会影响另一个。
-
动态性: 引用类型可以拥有任意数量的属性和方法,并且可以在运行时添加或删除。
-
原型链: JavaScript 中的所有引用类型都继承自一个原型对象,这个原型对象自身也可能有一个原型,形成所谓的原型链。这允许对象之间共享方法和属性。
理解引用类型对于深入学习 JavaScript 的面向对象编程、内存管理以及如何高效地操作复杂数据结构至关重要。