JS--基本类型和引用类型

基本类型

5个基本类型:
    Undefiend  Null  Boolean  String  Number
//这5个基本数据类型都是按值访问的,因此可以操作保存在变量中的实际的值

引用类型

引用类型的值是保存在内存中的对象,与其他语言不同,Javascript 不允许直接访问内存中的位置, 也就是说不能直接操作对象的内存空间。在操作对象时,实际是操作对象的引用而不是真正的对象。 (当然这种说法不准确,如果是将对象的变量赋值给另一个变量,那么操作的是引用,而如果是给对象添加属性,或者改变值,那么就是操作的实际的对象)

1.如果将一个引用类型直接赋值给一个变量,那么这个赋值是将引用(指针)赋值,也就是说复制的是一个指向实际对象的指针,而不是对象本身。
  这个时候改变两个中的任意一个,另一个都随着改变

2.将对象的某个属性赋值给另一个变量,如果这个值仍然是一个引用类型,那么变量存储的是指针,指向原本的对象。

对于引用类型,有一个比较重要的概念:深拷贝和浅拷贝

浅拷贝:浅拷贝也就是将引用变量直接赋值给另一个变量,这种赋值只是相当于拷贝了指针,改变的时候互相影响。

深拷贝:深拷贝的结果是,在内存里新建一个一样的对象,两个变量指向不同的内存空间,改变的时候互不影响。

深拷贝方法:
    var  a = {"value":1}
    var  b = JSON.parse(JSON.stringfy(a))

//注:在拷贝变量的时候想清楚需求,是需要深拷贝还是浅拷贝

技术贴,有问题请私信,共同探讨!

你可能感兴趣的:(JS--基本类型和引用类型)