我调用我自己——递归

https://blog.csdn.net/weixin_39518371/article/details/122910537

练习题解答

  • 输入的count应当是让老和尚讲故事的数量,请据此修改函数boring_story

    let boring_story = (count) => {
      // count: 打印次数+1,就会多出一行故事,所以把>变成>=即可
      if (count >= 0) {
          print_boring_story();
          boring_story(count - 1);
      } else {}
    }
    
  • 实现函数

    • not_less(a, b):比较数值,a不小于b时为真;

      let not_less = (a, b) => a >= b
      
    • compare(a, b): 比较数值,a > b则返回1,a=b则返回0,a < b 则返回-1

      • 提示:要处理多种情况,要用多层if else
      let compare = (a, b) => a>b ? 1 : (a==b ? 0 : -1)
      //上面这行是我皮一下~
      let compare = (a, b) => {
          if(a > b) {
              return 1;
          }else if(a == b) {
              return 0;
          }else {	//a<b
              return -1;
          }
      }
      
    • 输入为x, n,返回n个x相乘的值(指数)

      • 提示:x为0或n为0时,都应该返回1。
      let pow = (x, n) => {
          //个人觉得x==0时应该返回0,但这里还是按照题目写了。
          if(x*n == 0) return 1;
          return x*pow(x, n-1);
      }
      
  • js还有null这一数据类型,请分别写出它作为函数输入、输出的实例;

    //以null输入的实例
    let input_null = () => {
        console.log("即使没有输入,依然可以输出。");
    } 
    //以null输出的实例
    let output_null = () => {return null}
    
  • 下列表达式在控制台的输出是什么?请思考后用控制台验证。看得懂这些代码就行,请避免写出这样的代码。

    • if (null) { 1 + 1 }
      else { 3 }
      //我猜null可以被类型转换为false,所以if后面的语句将永远不会执行,而永远执行else里的语句,然后控制台处理语句"3",输出3
      
    • if (undefined) { 1 + 1 }
      else { 3 }
      //与上边的情况类似
      
    • ((x, y) => {
        if (x = y)
          return 2;
        else
          return 3;
        })(3, 4)
      /*x=y是赋值表达式,每一个表达式都有自己的功能,并且都有一个返回值。
      x = y这个表达式的功能是把y的值赋值给x,返回值是等号右边的值也就是y的值。
      这里y=4是非零的整数,被转换成了true。
      所以只要y非0,那么就返回3,当然如果传给y一个0的话就会返回2。有兴趣的可以试一下:)*/
      
  • let result = boring_story(1),它的输出是什么?

    一行boring_story()。因为赋值语句的返回值。

上文中我提到了“表达式”的说法,咳咳,纯粹是受C++语言的影响,我们一起期待下文gantrol哥哥怎样解释吧 😃

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值