//形参、实参
function add(v1,v2){
console.log(v1,v2);
console.log(add.length);
console.log('内部变量',arguments);
//形参的个数:函数名称.length
//实参的个数:arguments.length
console.log('arguments不被枚举到的值',arguments.length,arguments.callee);
//[Function add]
// add();
// arguments.callee();
}
console.log(add.length);//形参的个数
add(1,2);
add(1,2,3);
add(1);
add('a','hello',true,{name:'zs'});
//循环的三要素:初始值、判断条件(结束条件)、迭代器(条件对应的值发生改变)
/*
var start=0;
var foo=function(){
console.log(arguments.callee);
start++;
if(start<10) arguments.callee();
}
var boo=foo;
foo();
boo();
*/
function print(){
console.log(arguments);
//for ... in
for(var key in arguments){
console.log(arguments[key]+"t");
}
//for
for(var i=0;i<arguments.length;i++){
//var key=i.toString();
//var key=String(i);
var key=i+'';
console.log(arguments[key]+"w");
}
}
print(1);
print('hello','world');
print(1,2,3,4,5,6,7);
//js:很少用函数的重载(相同的函数名称、不同的返回值类型、不同的参数个数、不同的参数类型);弱数据类型语言
function add(){
//验证数据是number
//累加
var sum=0;
for(var key in arguments){
var value=arguments[key];
if(typeof value=='number'){
sum = sum + value;//sum += value;
}
}
return sum;
}
var s1=add(0);
var s2=add(100,200,300,'abc');
var s3=add(1,2,3);
console.log(s1,s2,s3);
/*
* 形参与实参第一次绑定关系
* 函数内部:形参变量名就与arguments[key]就有绑定关系
* */
console.log("hahahhahah");
function add(v1,v2){
v1='a';
v2='b';
arguments['0']="hello";
arguments['1']="world";
console.log(v1,v2,arguments['0'],arguments['1']);
}
add();
add(100);
add(100,200);
add(100,200,300);