新年第一記,從這裏開始,先來個簡單的!去年的知識梳理留下了不少尾巴,緣由有不少(知識儲量不足,懶了,項目多...) 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
行文倉促!有理解的不正確的或者是遺漏的東西,萬望批評指正!不勝感激!