Ajiu9

JavaScript基本类型和引用类型

Dec 1, 2017

CMAScript的变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型的值是简单的数据段,引用类型的值是多个值构成的对象。

把一个值赋值给变量时,解析器首先确定这个值是基本类型的值还是引用类型的值。基本数据类型有5种:Undefined、Null、Boolean、Number、String。这5种基本数据类型是按值访问的,因为可以操作保存在变量中的实际值。引用类型的值是按照引用访问的,因为javaScript不允许访问内存中的位置,不能直接操作对象的内存空间。(为对象添加属性操作的是实际对象)

动态属性

首先我们来定义一个引用类型的值:

图片

以上代码创建了一个对象并将其保存在person变量中,然后为变量添加了一个名为name的属性,并将字符串“江月夜”赋给了这个属性。之后通过函数alert()访问了这个新属性。如果对象不被销毁或者这个属性不被删除,则各属性将一直存在。

但是,不能给基本类型的值添加属性(不会导致错误)

图片

赋值变量值

除了保存方式不一样,变量复制也有区别。

基本类型复制后的俩个变量彼此独立,此后,这俩个变量可以参与任何操作而不会互相影响。

引用类型的变量复制其实是一个指针,而这个指针指向存储在堆中的一个对象。复制结束后,俩个对象实际上引用同一个对象。改变其中一个变量,就会影响另一个变量。

图片

传递参数

函数的参数是按值传递的,基本类型的传递会把值复制给arguments对象中的一个元素(局部变量),引用类型的传递会把这个值在内存中的地址复制给一个局部变量,所以会反应在函数的外部。


>
@2024-2025 湘ICP备2024048835号