arguments实参集合与局部变量、参数关系
fwxstar 2018-06-28 604次浏览
摘要:
// fn1(1,2,3); &nbs...
// fn1(1,2,3); //实参------实际传递的参数 // function fn1(a,b,c){} //形参------形式上abc代表123 // function fn1(){ //arguments => [1,2,3] ---- 实参的集合 } //当函数参数个数无法确定的时候:用arguments console.log(sum(1,2,3,"+")); console.log(sum(10,2,3,4,"-")); function sum(){ var n=0; var n1=arguments[0]; if(arguments[arguments.length-1] == "+"){ for(var i=0;i<arguments.length-1;i++){ n+=arguments[i]; } return n; }else{ for(var i=1;i<arguments.length-1;i++){ n1-=arguments[i]; } return n1; } } //arguments与作用域的关系 var a=1; function fn2(a){ arguments[0] = 3; //重新赋值函数内部a = 3 alert(a); //3 var a = 2; //重新赋值函数内部a = 2 alert(a); //2 } fn2(a); // 3 2 alert(a); // 外部a未变动,所以为1