执行以下代码,输出结果为()
function test(a){
a=a+10;
}
var a=10;
test(a);
console.log(a);
10
变量a为number类型,属于基本数据类型,基本数据类型在传参时,通过拷贝值进行传递。
因此,在函数内部修改形参时,不会对实参产生影响,故输出a的值为10
a是形参,属于局部变量,不影响全局变量a的值,因此输出的a是全局变量的值10
-
当传入参数的为基本类型(number, string, boolean)时,传入实际值
-
当传入参数为引用类型时, 传入内存地址,对形参的修改,相当于对原值的修改
例子:
function test(a, b){
a=a+10;
b.name = 'xiaohong'
}
var a=10;
var b = {'name': 'xiaoming'}
console.log(b.name) // 'xiaoming'
test(a, b);
console.log(a); // 10
console.log(b.name) // 'xiaohong'