一、传值:开辟新内存区域存储值
<body>
<script>
let a = 1;
let b = a;
console.log(a, b);
b = 3;
console.log(a, b);
</script>
</body>

let b = a;时为b开辟了一块新内存区域来存储1,因此修改b=3后,不会影响a内存区域的值。

传值通常用于基本类型(比较小的数据量),比如数值、字符串类型;但当数据量较大时,传值赋值就会非常耗费资源,因此需要传址。
二、传址:传递内存地址,而不开辟新空间
<body>
<script>
let c = { name: "yooo" };
let d = c;
console.log(c, d);
d.name = "alison";
console.log(c, d);
</script>
</body>

let d = c;时c的内存地址传递给d,d指向与c同一块内存,因此修改d.name = “alison”;后c.name也会随之改变。

传址通常用于引用类型(比较大的数据量),比如对象。
JavaScript:理解传值与传址
本文探讨了JavaScript中的两种数据存储方式:传值和传址。传值是在新内存区域存储值,如基本类型,修改副本不会影响原始值。而传址则是传递内存地址,不新开辟空间,如引用类型,修改副本会影响原始对象。
1260

被折叠的 条评论
为什么被折叠?



