本文主要是介绍【freecodecamp】Arguments Optional add(1)(2) 闭包与参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
function add() {var args = arguments;var args1 = args[0];function add2(){//一个闭包console.log("add2函数触发,arguments[0]:"+arguments[0]+"类型:"+typeof(arguments[0]));if(arguments[0] && typeof(arguments[0]) === "number"){return args1 + arguments[0];}else{return undefined;}}if(args.length === 1 && typeof(args[0]) === "number"){return add2;//返回一个函数}if(args.length > 1 ){var sum = 0;//如果参数大于1 则判断是否是数字,如果是数字则累加,有一个不是数字就直接返回undefined;for(var i = 0 ; i < args.length ; i++ ){if(typeof(args[i])=== "number"){sum = sum + args[i];}else if(typeof(args[i]!=="number")){return undefined;}}return sum;}return undefined;}console.log(add(2)(3));//5
console.log(add(2,3));//5
console.log(add("http://bit.ly/IqT6zt"));//undefined
console.log(add(2, "3"));//undefined
console.log(add(2)([3]));//undefined
这篇关于【freecodecamp】Arguments Optional add(1)(2) 闭包与参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!