在JavaScript中,引用类型是指非基本数据类型,它们是由对象、数组、函数等复杂数据结构组成的。
常见的引用类型包括:
-
对象(Object)
:对象是JavaScript中最基本的引用类型,它可以用来存储键值对,也可以通过原型链实现继承。 -
数组(Array)
:数组是一种有序的集合,可以存储任意类型的数据,它的长度是动态的,可以随时添加或删除元素。 -
函数(Function)
:函数是一种可执行的对象,可以封装一段可重复使用的代码。函数可以接收参数并返回值。
引用类型的特点包括:
-
引用类型的值是可变的:引用类型的值是存储在堆内存中的,当我们修改一个引用类型的值时,实际上是修改了它在内存中的地址,而不是修改了该值本身。
-
引用类型值的比较是引用的比较:当使用”==“或”===“运算符比较两个引用类型的值时,它们会进行引用的比较,即判断它们是否指向同一个内存地址。只有当两个引用指向同一个对象时,它们才被认为是相等的。
-
引用类型可以有自己的属性和方法:引用类型的值可以拥有自己的属性和方法。例如,数组对象有长度属性和一些常用的数组方法(例如push、pop、sort等),而函数对象有call、apply等方法。
-
引用类型可以通过原型链实现继承:通过原型链,引用类型可以继承父类型的属性和方法。
基本类型(如数字、字符串、布尔值)在JavaScript中是按值传递的,而引用类型是按引用传递的。
这意味着当将一个引用类型的值赋给另一个变量时,实际上是将内存地址复制给了新的变量,两个变量引用的是同一对象。而基本类型的值赋给另一个变量时,会创建一个新的值并赋给新的变量。