一、传值:开辟新内存区域存储值
<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也会随之改变。
传址通常用于引用类型(比较大的数据量),比如对象。