前7种为基础类型:存储在栈内存,做比较时为值的比较。
object为引用类型:存储在堆内存,做比较时为引用地址的比较。
题目一:
let a = { name: 'Julia', age: 20 } function change(o) { o.age = 24; o = { name: 'Kath', age: 30 } return o } let b = change(a); console.log(b.age); // 30 console.log(a.age); // 24
我最开始做的时候,a.age的结果和我预想的不一致,后来发现是function带来了不一样的东西,可以把上面的代码这样理解
let a = { name: 'Julia', age: 20 } function change(o) { let newObj = o //引用地址指向传进来的参数a newObj.age = 24; newObj = { //引用地址重新指向了一个对象,与a分离 name: 'Kath', age: 30 } return newObj } let b = change(a); console.log(b.age); // 30 console.log(a.age); // 24