美文网首页
JavaScript知识总结 --- js数据类型之深拷贝和浅拷

JavaScript知识总结 --- js数据类型之深拷贝和浅拷

作者: 进入web前端 | 来源:发表于2018-07-06 16:00 被阅读0次

在学习一门编程语言的时候,总会先认识它的数据类型,而JS作为一种弱类型的语言,它的数据类型也很是简单。

最近有朋友问到有关于js数据类型的赋值,我也根据自己的理解和参考一些文档进行总结一下给大家分享一下,希望理解不到位的大家可以指出来。^_^

1.JS的数据类型分类:

(1)、基本类型: Undefined、Null、Boolean、Number 和String;

(2)、引用类型:对象(object)、数组(array)、函数(function) ;

2.JS的深拷贝和浅拷贝代码区别

(1)深拷贝:

var obj1 = {a: 1, b: 2,c: 3 };

var obj2 = { A: obj1.a, B: obj1.b, C: obj1.c };

obj2.B =100;

console.log(obj1);        // { a: 1, b: 2, c: 3 }

console.log(obj2);        // { a: 1, b: 100, c: 3 }

(2)浅拷贝:

var obj1 = { a: 1, b: 2, c: 3 };   

var obj2 = obj1; 

 obj2.b = 4;

 console.log(obj1);        // { a: 1, b: 4, c: 3 }    

 console.log(obj2);        // { a: 1, b: 4, c: 3 }


3.JS的深拷贝和浅拷贝的图解和概念:


那么js的数据类型和深拷贝、浅拷贝之间又有什么关系呢?我们可以先来看下这张图:

一般情况下两种数据类型的赋值情况

从图中就可以简单来说可以总结一下:

1.基本类型:名字和值存储在栈内存中

2.引用数据类型:名字存在栈内存中,值存在于堆内存中,而栈内存中会提供一个引用的地址指向堆内存中的值

上面的总结希望对大家有帮助,当然理解了概念之后,对于实现深拷贝网上也有很多方法,希望大家可以去看看,多看源代码案例更便于对概念的理解,以后有机会也会将实现深拷贝的方法进行总结,谢谢大家继续关注勒。

相关文章

  • JavaScript知识总结 --- js数据类型之深拷贝和浅拷

    在学习一门编程语言的时候,总会先认识它的数据类型,而JS作为一种弱类型的语言,它的数据类型也很是简单。 最近有朋友...

  • Java深拷贝和浅拷贝的区别

    一、深拷贝和浅拷贝的区别 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。 深拷...

  • 浅拷贝和深拷贝

    本文参考:JavaScript中的浅拷贝和深拷贝js 深拷贝 vs 浅拷贝深入剖析 JavaScript 的深复制...

  • JS中的深拷贝和浅拷贝

    理解JS中的深拷贝和浅拷贝,必须知道如下两个知识点: JavaScript的数据类型 值类型(基本类型):字符串(...

  • JS中对象的复制

    JS中的对象复制分为两种情况:深拷贝和浅拷贝。深拷贝和浅拷贝的区别在于对数组和对象的拷贝,对它们拷贝时浅拷贝只是拷...

  • 2021-04-14

    JS浅拷贝、深拷贝小整理 说这个话题之前,先扯一下JS的基本数据类型: 1,Javascript数据类型: 值类型...

  • iOS学习之copy属性分析

    小结第一篇,来总结一下iOS开发中有关copy的知识点。 iOS中,深拷贝和浅拷贝有什么不同? 浅拷贝 所谓的浅拷...

  • 理解JavaScript中浅拷贝和深拷贝的区别

    要理解 JavaScript中浅拷贝和深拷贝的区别,首先要明白JavaScript的数据类型 JavaScript...

  • js 深拷贝 vs 浅拷贝(本篇博客摘抄子掘金‘sunshine

    链接本文主要讲一下 js 的基本数据类型以及一些堆和栈的知识和什么是深拷贝、什么是浅拷贝、深拷贝与浅拷贝的区别,以...

  • js数据类型

    JS基本数据类型和引用数据类型(JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝) 再讲 js 的基本数据类...

网友评论

      本文标题:JavaScript知识总结 --- js数据类型之深拷贝和浅拷

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