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的更多相关文章

  1. Arguments Optional

    function add() { //return false; if(typeof arguments[0] !== "number" || arguments.length & ...

  2. Arguments Optional 计算两个参数之和的 function

    创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add(2, 3) 应该返回 5,而 add ...

  3. [Intermediate Algorithm] - Arguments Optional

    题目 创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 例如,add(2, 3) 应该返回 5,而 ...

  4. FreeCodeCamp 中级算法(个人向)

    freecodecamp 中级算法地址戳这里 Sum All Numbers in a Range 我们会传递给你一个包含两个数字的数组.返回这两个数字和它们之间所有数字的和. function su ...

  5. Arguments Optional-freecodecamp算法题目

    Arguments Optional 1.要求 创建一个计算两个参数之和的 function.如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果. 如 ...

  6. FCC-js算法题解题笔记

    题目链接:https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/intermediate-algorithm ...

  7. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  8. python命令行解释器 argparse

    一: argparse介绍 1.  argparse argparse,它是Python标准库中推荐使用的编写命令行程序的工具 parser = argparse.ArgumentParser()  ...

  9. Managing IIS Log File Storage

    Managing IIS Log File Storage   You can manage the amount of server disk space that Internet Informa ...

随机推荐

  1. layui 导出excel复杂表头

    众所周知 layui的导出功能很好用,但是今天我要给大家推荐一个更好用的 大家来到这里想必也是因为layui无法满足 [导出Excle复杂表头] 的业务需求而来,这里废话不多说但还是强调一点,如果你是 ...

  2. Windows Server 2008 R2x64 IIS7+PHP5.6 错误 500.0

    这两天准备升级一个网站项目,新项目基于PHP并进行了ZendGuard加密,需要在PHP5.6版本中运行 而客户之前的运行环境是php5.2~5.4,那好,再新建一个PHP版本不就完事了吗!!! 于是 ...

  3. 在UEditor编辑器的工具栏上加一行文字

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  4. H5-video1 iOS苹果和微信中音频和视频实现自动播放的方法

    <audio preload="preload" controls id="car_audio" src="http://media.xitao ...

  5. (转载)关于初学者上传文件到github的方法

    说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...

  6. Redis容量及利用计划

    在利用Redis过程当中,咱们发明了很多Redis分歧于Memcached,也差别于MySQL的特点.(本文首要会商Redis未启用VM撑持环境) 1. Schema MySQL: 需事先设计Memc ...

  7. xtrabackup增量备份mysql +MHA

    http://blog.csdn.net/yanggd1987/article/category/2214421 https://www.centos.bz/2013/09/innobackupex- ...

  8. iOS UIToolBar的使用

    UIToolBar存在于UINavigationController导航栏控制器中.并且默认被隐藏. 当设置UIToolBar显示,或者存在UITabBarController且tabbar被隐藏的时 ...

  9. Java读源代码学设计模式:适配器Adapter

    适配器模式相关源代码:slf4j-1.6.1.hibernate-3.6.7 大家都知道.log4j是一个广泛使用的日志工具,除此之外.sun公司在JDK中也有自己的日志工具,也就是java.util ...

  10. MySQL出现Ignoring query to other database的问题

    今天使用mysql的时候,输入随意一条命令都会出: Ignoring query to other database 这条错误信息,非常是奇怪. 后来才发现是登录数据库时.少了个-u的參数.. 正确的 ...