老师,这里有个问题哦。

老师,这里有个问题哦。

老师,这里如果设置num=1,为什么打印的值是1?num不是传入的是5,那应该直接执行下一个num*factorial(num-1)才对啊

<!DOCTYPE html> 

<html> 

<head> 

    <meta charset="UTF-8" /> 

    <title>匿名函数的使用</title> 

</head> 

<body> 

<script type="text/javascript"> 

  function factorial(num){

   if(num=1)return 1;

   return num*factorial(num-1);

  }

console.log(factorial(5));

</script> 

</body> 

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕糖 2018-12-10 14:01:33

同学你好,这里没有else语句,if判断若是不成立的话,会执行下面的语句;

但是num=1的话,就在直接赋值了,不是判断(判断是否相等需要两个等号即:==);直接赋值为1,if语句条件是成立的,所以会执行if语句。

希望能帮助到你,欢迎采纳。

祝学习愉快!

好帮手慕糖 2018-12-09 12:26:55

同学你好,这里是因为if中使用的是num=1,一个等号的话,是赋值,把1赋值给了num,然后就会执行if语句,若是判断的话,是需要使用两个等号,例:

http://img1.sycdn.imooc.com//climg/5c0c995c0001f3f903480248.jpg

希望能帮助到你,欢迎采纳。

祝学习愉快!


  • 提问者 慕尼黑4757019 #1
    但是这里传参是传5,if是判断语句,如果num==1不成立,则执行else下面的,这样理解是有什么问题呢?不好意思哈,实在理解不了
    2018-12-10 11:14:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师