1、含义
栈:后进先出 当定义一个变量时,内存中会开辟一块存储空间 用来存放该变量的值 ,这个空间就叫做栈 栈中存放一个变量的值。
堆:堆中可以存放多个数据
指针:在计算机中有一种特殊的变量,这个变量存放的是某个变量的地址,这种特殊类型的变量叫做指针。
值传递:变量为基本数据类型(string number boolean null undefined),栈中存放变量数据,修改时互不影响。
地址传递:变量为引用类型(对象 数组 函数),栈中存放的为该变量的地址(指针),数据存放在堆中,一改全改。
2、示例
// 值传递
var a = 1
var b = a
b = 2
console.log(a, b)
// 地址传递
var obj = {
a: '张三'
}
var obj2 = obj
obj2.a = '李四'
console.log(obj, obj2)
执行结果