寫三個例子,說說arguments的用處:函數
1.用arguments實現對傳參的判斷,加強函數的容錯功能。spa
1 function avg() { 2 var num = 0, 3 len = 0; 4 5 for(var i = 0; i<arguments.length; i++) { 6 if(typeof arguments[i] != "number") { 7 continue; 8 } 9 num += arguments[i]; 10 len++; 11 } 12 13 num /= len; 14 return num; 15 } 16 17 console.log(avg(1,2,3,'dsd')); 18 console.log(avg(1,2,3,'3'));
2.郵箱驗證中arguments的用處code
1 /** 2 * @descciprion 用於表單驗證 3 * @returns {boolean} 4 */ 5 function isEmail() { 6 if(arguments.length > 1) { 7 throw new Error("only one parameter") 8 } 9 10 var reg = /^\w+((-\w+) | (\.\w+))*\@[A-Za-z0-9]+((\. | -)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 11 if (reg.test(arguments[0])) { 12 return true; 13 } else { 14 return false; 15 } 16 }
3.arguments.callee的組合與應用blog
1 function f(x, y, z) { 2 var a = arguments.length; 3 var b = arguments.callee.length; 4 console.log(a); 5 console.log(b); 6 7 if( a != b ) { 8 throw new Error("傳遞的參數不匹配"); 9 } else { 10 return x + y + z; 11 } 12 } 13 14 console.log(f(3, 4, 5));