作者:zccst
所有函数的参数都是按值传递的。也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样。
基本类型值的传递如同基本类型变量的赋值一样。
而引用类型值的传递,则如同引用类型变量的赋值一样。
不少人困惑,因为变量有按值和按引用两种方式,而参数只能按值传递。
在向参数传递基本类型和引用类型时都会复制一份。
//传递了形参
var a = [1, 2, 3];
var b = [5, 6];
function change(a,b) {
var c = a;
a[0] = 4;
a = b;
b = c;
};
change(a,b);
console.log(a,b); //"4,2,3" //"5,6" //没有传递形参
var a = [1, 2, 3];
var b = [5, 6];
function change() {
var c = a;
a[0] = 4;
a = b;
b = c;
};
change();
console.log(a,b); //"5,6" //"4,2,3"
function test(i){
var i;
alert(i);//10,上面 var i; 属于重复定义
}
test(10);
var a = 100;
function test() {
console.log(a);//undefined
var a = 10;
console.log(this.a);//
console.log(a);//
}
test();