(三)nodejs循序渐进-值传递和引用传递,深拷贝和浅拷贝(基础篇)

本文深入探讨JavaScript中的值传递和引用传递概念,通过实例解析变量在内存中的存储方式。值类型(number, string, boolean)遵循值传递,而引用类型(如数组和对象)则采用引用传递。在函数调用和逻辑运算中,两种传递方式产生不同的结果。此外,还介绍了深拷贝和浅拷贝的区别,并提供了一个深拷贝函数的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值传递和引用传递


值类型变量:

存在内存的堆中,比如:a=1
引用类型变量 :

1.指针存在于栈中,2.引用类型的具体内容存在于堆中 ex:let a={b:1} a的指针指向 堆中的地址0xffac0ec

正如我在 第二章 说的,

  • number
  • string
  • boolean

这三种常规类型的是值传递, 而array,对象这种就属于引用传递了。

代码来说话,我们先看看

值传递:

var int1 = 12;
var int2 = int1;
int1 = 10000;
console.log(int2);

var b1 = true;
var b2 = b1;
b2 = false;
console.log(b1);

var str1="hello world";
var str2=str1;
str2="高司机,出bug了";
console.log(str1);

输出结果为

12
true
hello world

引用传递:

let obj1 = {};
let obj2 = null;
obj2 &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值