函数参数传值修改
一、拼多多编程题
考点:
参数在传递给函数时,会将参数拷贝一份传递给函数(按值/址传递)
arrTemp = []; // 『重新赋值一个全新的数组给参数变量,只会改变函数内部的这个变量的引用,而不会影响到外部的原始数组』
objTemp.a = 1; // objTemp 先改变了和 obj 共同指向的对象 -> {a:1}
objTemp = { b: 2 }; // objTemp指向了另一个地址的对象
浏览器输出结果:
二、补充案例
请删除注释再做一遍,注意很多变量名称相似:
var num1 = 55;
var num2 = 66;
function f1(num, num1) {
num = 100;
num1 = 100;
num2 = 100; // 这是一个隐式全局变量 - 改变的是全局中的 num2
console.log(num); // 100
console.log(num1); // 100
console.log(num2); // 100
}
f1(num1, num2);
console.log(num); // 『报错』
console.log(num1); // 55
console.log(num2); // 『100』