zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    http协议
    web及时通信传输的几种方法
    头像上传可预览实现代码
    JavaScript对象基础知识总结
    js异步流程的promise及generator
    数据整理
    前端技术分类整理
    HTML随笔
    前端内网穿透,localtunnel
    CSS记录
  • 原文地址:https://www.cnblogs.com/zhrngM/p/8645497.html
Copyright © 2011-2022 走看看