按值传递是指两变量间赋值时,或者将变量做为参数传递给函数的参数变量时,其实只是将原变量的值赋值一个副本给对方。函数
原始类型中,修改新变量,不会影响原变量的值;以下:内存
var a=10,b=20;console
var x=a;y=b;变量
x--;引用
y--;co
console.log(x); //9参数传递
console.log(y); //19引用传递
console.log(a); //10参数
console.log(b); //20
注:JS中,全部函数的参数都是按值传递的。
按引用传递,传递的参数是按引用进行传递,其实传递的引用地址,也就是变量所对应的内存空间的地址;以下:
var a=[1,2,3];
var b=a;
console.log(b[0]); //1
b[0]++;
console.log(a[0]); //2
以上代码中,将a赋值给b,实际上是将变量在内存中保存的地址赋值给了b,两个变量共用一个地址,所以当b发生变化时,a也一样会受到影响。