JavaScript中如何区分浅拷贝与深拷贝?

2026-05-29 07:123阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2421个文字,预计阅读时间需要10分钟。

JavaScript中如何区分浅拷贝与深拷贝?

前言:阅读此文前需掌握:JavaScript的堆栈原理,引用类型与基本类型区别

在JavaScript中,我们将数据分为基本数据类型(原始值)与引用数据类型。

基本数据类型(原始值):- 数字(Number)- 字符串(String)- 布尔值(Boolean)- 空值(Null)- 未定义(Undefined)

引用数据类型:- 对象(Object)- 数组(Array)- 函数(Function)


前言:

阅读此文前需掌握:​​javascript的堆栈原理,引用类型与基本类型区别​​​ 在​​JavaScript​​中,我们将数据分为​​基本数据类型(原始值)​​与​​引用类型​​

  • 基本数据类型的值是按值访问的,基本类型的值是不可变的
  • 引用类型的值是按引用访问的,引用类型的值是动态可变的
var fx = 100;
var fx1 = 100;
console.log(fx === fx1) // true
var fx2 = {a: 1, b: 2};
var fx3 = {a: 1, b: 2};
console.log(fx2 === fx3) // false 两个不同的对象
  • 基本数据类型的比较是值得比较
  • 引用类型的比较是引用地址的比较

鉴于以上数据类型的特点,我们可以初步想到:所谓​​浅拷贝​​与​​深拷贝​​可能就是对于值的拷贝和引用的拷贝(基本数据类型都是对值的拷贝,不进行区分)。一般来说,我们所涉及的拷贝对象,也都是针对引用类型的。

阅读全文

本文共计2421个文字,预计阅读时间需要10分钟。

JavaScript中如何区分浅拷贝与深拷贝?

前言:阅读此文前需掌握:JavaScript的堆栈原理,引用类型与基本类型区别

在JavaScript中,我们将数据分为基本数据类型(原始值)与引用数据类型。

基本数据类型(原始值):- 数字(Number)- 字符串(String)- 布尔值(Boolean)- 空值(Null)- 未定义(Undefined)

引用数据类型:- 对象(Object)- 数组(Array)- 函数(Function)


前言:

阅读此文前需掌握:​​javascript的堆栈原理,引用类型与基本类型区别​​​ 在​​JavaScript​​中,我们将数据分为​​基本数据类型(原始值)​​与​​引用类型​​

  • 基本数据类型的值是按值访问的,基本类型的值是不可变的
  • 引用类型的值是按引用访问的,引用类型的值是动态可变的
var fx = 100;
var fx1 = 100;
console.log(fx === fx1) // true
var fx2 = {a: 1, b: 2};
var fx3 = {a: 1, b: 2};
console.log(fx2 === fx3) // false 两个不同的对象
  • 基本数据类型的比较是值得比较
  • 引用类型的比较是引用地址的比较

鉴于以上数据类型的特点,我们可以初步想到:所谓​​浅拷贝​​与​​深拷贝​​可能就是对于值的拷贝和引用的拷贝(基本数据类型都是对值的拷贝,不进行区分)。一般来说,我们所涉及的拷贝对象,也都是针对引用类型的。

阅读全文