Arguments Optional FreeCodeCamp
Posted 有你~你是美好滴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arguments Optional FreeCodeCamp相关的知识,希望对你有一定的参考价值。
function add() { if(typeof arguments[0] !== "number" || (arguments.length > 1 && typeof arguments[1] !== "number")){ return undefined; } if(arguments.length == 1){ var arg0 = arguments[0]; return function(num){ if(typeof num !== "number"){ return undefined; } return arg0 + num; }; }else{ return arguments[0] + arguments[1]; } }
题目:
创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。
例如,add(2, 3)
应该返回 5
,而 add(2)
应该返回一个 function。
调用这个有一个参数的返回的 function,返回求和的结果:
var sumTwoAnd = add(2);
sumTwoAnd(3)
返回 5
。
如果两个参数都不是有效的数字,则返回 undefined。
分析:
闭包是函数和声明该函数的词法环境的组合。
https://developer.mozilla.org/zh-CN/docs/Web/javascript/Closures
arguments
是一个对应于传递给函数的参数的类数组对象。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments
typeof
操作符返回一个字符串,表示未经计算的操作数的类型。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/typeof
参考博客:
http://www.cnblogs.com/fffangrui/p/6114402.html
以上是关于Arguments Optional FreeCodeCamp的主要内容,如果未能解决你的问题,请参考以下文章