新年第一记,从这里开始,先来个简单的!去年的知识梳理留下了不少尾巴,缘由有不少(知识储量不足,懒了,项目多...) lg:都是借口~ 好吧,我认可,这都是借口,今年必定把尾巴清干净!javascript
下面要写的是知识梳理的第一个案例:html
这个案例主要要考察的知识点是 arguments 参数,来给个特写,什么意思呢?java
arguments 参数是一个比较特殊的对象,是当前函数的一个内置属性,它很是想Array,但却不是Array lg:说的什么,仍是不懂~ 额,好吧,例子赛过一切雄辩,我们举几个栗子来看看:
数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
function
abc(a,b,c){
//看看arguments是什么
console.log(arguments);
}
abc(1,2,3) ;
//[1,2,3] 这不是数组吗
function
abc(a,b,c){
//看看arguments是什么类型的
console.log(
typeof
arguments)
}
abc(1,2,3) ;
//object 这是对象,不是数组
|
看看,是否是有点意思,似数组非数组 lg:那它怎么用呢~ 这个问题问的好,看下面代码:浏览器
1
2
3
4
5
6
7
8
9
|
function
abc(a,b,c){
var
len = arguments.length;
console.log(len);
console.log(arguments[0]);
console.log(arguments[1]);
}
abc(1,2,3);
// 3 , 1 , 2
//长度为3,第一个值为1,第二个值为2... 看来是具备对应关系的
|
lg:就只有这2下子?一点都很差玩~ 呵,你还急了,固然不仅这两下子啊,它有一个很是实用的功能,就是在函数中,无需明确指出参数名,arguments能直接访问它,你说屌不屌,耳听为虚,眼睛为使:函数
1
2
3
4
5
6
7
8
|
function
abc(){
var
a = arguments;
var
num = arguments[0] + arguments[1] + arguments[2];
//这里能够用循环,为方便查看,拆开了写,你懂的
console.log(num);
}
abc(1,2,3);
// 6 说明能够获取
//正常来讲,函数没有参数,应该是要报错的,若是能成功运行,说明它具有这个神级
|
lg:果真了得啊,那它还有没有其余的吊炸天技能呢? 固然有啦!arguments对象中有一个很是有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名自己。举个栗子:post
1
2
3
4
5
6
7
8
9
|
function
abc(a){
if
(a==1){
console.log(arguments.callee);
//直接输出当前函数
return
1;
}
return
a + arguments.callee(--a);
}
var
mm = abc(10);
console.log(mm);
// 55<br><br>//arguments.callee(--a) 执行了递归调用,这样就完成了1~9的累加
|
看到这里,上面说的例子应该就不难写了吧,来跟着我左手右手一个慢动做:测试
function sumFn(){ var arg = arguments; var sum = 0; if(arg == '' || arg == ' ' || arg ==null){ sum = 0; }else{ for(var i=0;i<arg.length;i++){ if(isNaN(arg[i]) || arg[i] == '' || arg[i] ==' '){ sum = sum; }else{ sum +=arg[i]; } } } return sum; } var num1 = sumFn(2) + sumFn(3); console.log(num1); //5 var num2 = sumFn(2,3,4); console.log(num2); //9 var num3 = sumFn(); console.log(num3); //0
var num4 = sumFn(1,'e',6); console.log(num4); //7
到这里,不知道你对这个例子理解了没有, lg: 这么好的东西,兼容性怎么样呢? 哈哈,这么吊炸天的东西,兼容性还特别的好,你说气不气人,经测试,支持全部浏览器!spa
好了,它是对象,它也有对象,可是我尚未对象,呜呜呜~~~,我要去找对象去了!code
行文仓促!有理解的不正确的或者是遗漏的东西,万望批评指正!不胜感激!