js argument实参集合与局部变量、参数关系

形参

形式上传递的参数

function fn1(a,b,c) {//a,b,c就是形参

实参

实际传递的参数

fn1 (1,2,5);//1,2,5就是实参

argument

定义: 实参的集合

用法:

e.g.1直接返回

fn1 (1,2,5);
function fn1() {
	alert(arguments);//object arguments(注意返回的不是1,2,5)
}

e.g.2返回长度

fn1 (1,2,5);
function fn1() {
	alert(arguments.length);//3,有三个实参所以长度是三
}

e.g.3 返回某一个实参

fn1 (1,2,5);
function fn1(a,b,c) {
	alert(arguments[arguments.length-1]);//5
}

作用:当函数的参数无法确定时,用arguments

alert(sum(1,2,3));//6
alert(sum(1,2,3,4));//10
function sum() {
	var n=0;
	for (var i = 0; i < arguments.length; i++) {
		n+=arguments[i];
	}
	return n;

}

argument与作用与的关系

var a=1;
function fn2(a) {
	arguments[0] = 3;
	alert(a);//3
	var a=2; 
	alert(arguments[0]);//2
}
fn2(a);
alert(a);//1(没传进去?)
若到江南赶上春,千万和春住
原文地址:https://www.cnblogs.com/huyuzhu/p/6200852.html