美文网首页
基本类型,引用类型,深浅拷贝

基本类型,引用类型,深浅拷贝

作者: 饥人谷_阿银 | 来源:发表于2019-03-02 20:26 被阅读0次

1.基本类型值(数值、布尔值、字符串、null和undefined):指的是保存在栈内存中的简单数据段;
2.引用类型值(对象、数组、函数、正则):
存放在堆内存中的对象,变量保存的是一个指针,这个指针指向另一个位置。当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中取得所需的数据。

浅拷贝和深拷贝

JavaScript存储对象都是存地址的,所以浅拷贝会导致 obj1 和obj2 指向同一块内存地址。改变了其中一方的内容,都是在原来的内存上做修改会导致拷贝对象和源对象都发生改变,而深拷贝是开辟一块新的内存地址,将原对象的各个属性逐个复制进去。对拷贝对象和源对象各自的操作互不影响。

例子

//浅拷贝
var obj1 = {name = 'xxx'};
var obj2 = obj1;//指向同一个内存地址
//深拷贝
var obj1 = {name = 'xxx'};
var obj2 = {};//创建一个新空间
obj2.name = obj1.name;//存放name的数值

这是一个比较简单的对象的拷贝,再来看一个比较复杂的:

var people = {
         name:'xxx',                                    //基本数值
         friends:['people1','people2','peopple3'],      //数组
         info:{                                        //对象
               phone:'133xxxxxxxx',
               age:'18',
               sex:'man'
         }   
}

相关文章

  • 基本类型,引用类型,深浅拷贝

    1.基本类型值(数值、布尔值、字符串、null和undefined):指的是保存在栈内存中的简单数据段;2.引用类...

  • Java深拷贝和浅拷贝

    定义 浅拷贝 基本数据类型 拷贝数值 引用类型 拷贝对象引用 深拷贝 基本数据类型 拷贝数值 引用类型 拷贝引用所...

  • 【JavaScript】深拷贝

    深浅拷贝复杂数据类型(引用数据类型),简单数据类型(基本数据类型)没有深浅的说法 1、Object.assign(...

  • javascript拷贝

    JavaScript引用类型 浅拷贝和深拷贝 基本类型:深浅拷贝都是一样的效果,所以只有拷贝,值传递,新的内存分配...

  • Java之深浅拷贝

    Java之深浅拷贝 基本类型:拷贝数据的值其他类型:拷贝地址的引用,拷贝出的新对象与原对象共享实例变量,不受访问权...

  • js-引用类型对象拷贝

    1.引用类型; 2.过滤数组; 3.深浅拷贝方法; 1.引用类型有哪些?非引用类型有哪些 引用类型:引用类型(Ob...

  • 引用类型对象拷贝

    对象的深浅拷贝是面试常见题目 1.引用类型有哪些?非引用类型有哪些 基本类型值(数值、布尔值、null和undef...

  • js 深拷贝和浅拷贝

    在讲深拷贝和浅拷贝的时候先说一下js的数据类型,因为在我理解而言只有引用类型才有深浅拷贝的概念 基本数据类型 首先...

  • js对象的深浅拷贝辨析

    在网上浏览了不少关于深浅拷贝的解析,在此,要总结的几点内容大致如下: 基本类型和引用类型 浅拷贝与深拷贝的区别 常...

  • 手写深拷贝

    1. 简述深拷贝 JavaScript 中有2种变量类型:值类型(基本类型)和引用类型。深拷贝和浅拷贝都是针对引用...

网友评论

      本文标题:基本类型,引用类型,深浅拷贝

      本文链接:https://www.haomeiwen.com/subject/bqgjuqtx.html