arguments实参小应用

arguments代表的是实际传递的参数:

fn1( 1,2,3 );				// 实参——实际传递的参数
function fn1(){
	aler(arguments[0]);            // arguments => [ 1,2,3 ] —— 实参的集合
}

主要用在当实参数无法确定时。

下面写了一个小练习(加减简单计算器):

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<script type="text/javascript">
	function count() {
		var num = 0;
		var b = arguments.length-1;                  //简化代码
		if (arguments[b] == '+') {                   //数组最后一位是加
			for (var i = 0; i < b; i++) {
				num += arguments[i];
			}
		}
		else if (arguments[b] == '-') {               //数组最后一位是减
			for (var i = 1; i < b; i++) {
				num += arguments[i];          //把除了数组第一个数字剩下的数字相加
			}
			num = arguments[0]-num;                //用第一个数字减后面数字相加的和
		} 
		return num;                                    //最后返回num
	}
	alert(count(1,1,1,2,3,'+'));        //8
	alert(count(10,5,2,1,'-'));         //2
</script>
</body>
</html>

还有一道相关的题:

var a = 1;
function fn2( a ){
	arguments[0] = 3;
	alert(a);	            // 3
	var a = 2;
	alert( arguments[0] );	    // 2     上一条语句的优先级大于去实参数组里找a
}
fn2(a);
alert(a);	                    // 1


猜你喜欢

转载自blog.csdn.net/weixin_42565663/article/details/80998614
今日推荐