如何详细解析JavaScript中实现浅拷贝与深拷贝的代码?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1755个文字,预计阅读时间需要8分钟。
(一)JavaScript中基本类型和引用类型+JavaScript的变量中包含两种类型的值:基本类型值+引用类型值,在内存中的表现形式:前者是存储在栈内存中的,后者是存储在堆内存中的,前者是存储在栈内存中的一些简单数据段,后者则是存储在堆内存中的对象。
(一)JS中基本类型和引用类型
JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象。
基本类型值
在JavaScript中基本数据类型有 String , Number , Undefined , Null , Boolean ,在ES6中,又定义了一种新的基本数据类型 Symbol ,所以一共有6种。
基本类型是按值访问的,从一个变量复制基本类型的值到另一个变量后,这两个变量的值是完全独立的,即使一个变量改变了也不会影响到第二个变量。
var str1 = '撩课'; var str2 = str1; str2 = 'itlike'; console.log(str2); //'itlike' console.log(str1); //'撩课'
引用类型值
引用类型值是引用类型的实例,它是保存在堆内存中的一个对象,引用类型是一种数据结构,最常用的是Object,Array,Function类型,此外还有Date,RegExp,Error等。
在ES6中提供了Set,Map2种新的数据结构。
(二)JS中如何复制引用类型的
基本类型和引用类型赋值的差异化
举个例子:在下面代码中,只修改了obj1中的name属性,却同时改变了ob1和obj2中的name属性。
本文共计1755个文字,预计阅读时间需要8分钟。
(一)JavaScript中基本类型和引用类型+JavaScript的变量中包含两种类型的值:基本类型值+引用类型值,在内存中的表现形式:前者是存储在栈内存中的,后者是存储在堆内存中的,前者是存储在栈内存中的一些简单数据段,后者则是存储在堆内存中的对象。
(一)JS中基本类型和引用类型
JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象。
基本类型值
在JavaScript中基本数据类型有 String , Number , Undefined , Null , Boolean ,在ES6中,又定义了一种新的基本数据类型 Symbol ,所以一共有6种。
基本类型是按值访问的,从一个变量复制基本类型的值到另一个变量后,这两个变量的值是完全独立的,即使一个变量改变了也不会影响到第二个变量。
var str1 = '撩课'; var str2 = str1; str2 = 'itlike'; console.log(str2); //'itlike' console.log(str1); //'撩课'
引用类型值
引用类型值是引用类型的实例,它是保存在堆内存中的一个对象,引用类型是一种数据结构,最常用的是Object,Array,Function类型,此外还有Date,RegExp,Error等。
在ES6中提供了Set,Map2种新的数据结构。
(二)JS中如何复制引用类型的
基本类型和引用类型赋值的差异化
举个例子:在下面代码中,只修改了obj1中的name属性,却同时改变了ob1和obj2中的name属性。

