理解 JS 按引用传递,按引用传递表示传递的是对象在内存中的地址,而不是对象本身。也就是说,当我们将一个对象作为参数传递给函数或者赋值给另一个变量时,实际上传递的是该对象的引用,而不是对象的副本。
很多资料会说“JavaScript 对象是按引用传递”。这个说法能解释一部分现象,但不够准确。
更准确的说法是:
> JavaScript 的函数参数都是按值传递。
> 只是当这个值是对象时,变量里保存的是对象的引用地址。
也就是说,函数拿到的是“引用地址的一份拷贝”,而不是对象本身的完整拷贝。
## 1. 先看基本类型
基本类型包括 `number`、`string`、`boolean`、`null`、`undefined`、`symbol`、`bigint`。
基本类型传参时,函数拿到的是值的拷贝。
```js
let num = 10;
function cha...