数字、字符串:把值直接复制进去;数组、对象:把变量地址复制进去。
ECMAScript 中,所有函数的参数都是按值来传递的。基本类型值的传递和基本类型变量复制一致(采用在栈内新建值),引用类型值的传递和引用类型变量的复制一致(栈内存放的是指针,指向堆中同一对象)
1.基本类型的传递
//在基本类型参数传递的时候,是复制栈帧的拷贝操作。外部声明的变量num和函数参数的num,拥有完全相同的值,但拥有完全不同的参数地址,两者谁都不认识谁,在函数调用返回的时候弹出函数参数num栈帧。所以改变函数参数num,对原有的外部变量没有一点影响。
function add(num){
num+=10;
return num;
}
num=10;
add(num);//20
num;//10