欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

0012-基本类型和引用类型的值

程序员文章站 2022-04-01 18:41:04
...

ESCMAScript变量包含两种不同数据类型的值:基本数据类型和引用数据类型。基本数据类型指的是简单的数据段,而引用类型的值指那些可能由多个值构成的对象。
将一个值赋值个变量时,解析器必须确定这个值是基本数据类型还是引用数据类型,基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。
引用数据类型的值是保存在内存中的对象,与其他语言不同,Javascript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引用访问的。

动态的属性

var person=new Object();
person.name='李华'
console.log(person.name)    //李华

复制变量值
复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到新变量的位置上,此后这两个变量可以参与任何操作而不会相互影响。

var num1 = 5;
var num2 = num1;
num2 = 3;
console.log(num1, num2);    //5,3

当从一个变量向另一个变量复制引用类型的值时,同样也会将存储在变量对象中的值复制一份到为新变量分配的空间中。不同的是,这个值的副本实际上是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用同一个对象。因此,改变其中一个变量,就会影响到另一个变量

var obj1 = new Object()
var obj2 = obj1
obj1.name = '李华'
console.log(obj1.name, obj2.name)   //李华 李华
相关标签: start again