怎么在JavaScript中定义递归函数

  介绍

本篇文章为大家展示了怎么在JavaScript中定义递归函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

JavaScript有什么特点

1, js属于一种解释性脚本语言;2,在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3,js属于一种弱类型脚本语言,对使用的数据类型未做出严格的要求,能够进行类型转换,简单又容易上手;4,js语言安全性高,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失;5,基于对象的脚本语言,js不仅可以创建对象,也能使用现有的对象。

递归函数是一个函数通过名字调用自身的情况下形成的,比如经典的递归阶乘函数:

function 阶乘(num), {   if 才能;(num  & lt;=, 1), {   ,,,return  1;   ,,},{else    ,,,return  num  *,阶乘(num 作用;1);   ,,}   }

上面的这种写法,可能会造成问题:

var  anotherFactorial =, !;   时间=factorial 零;   console.log (anotherFactorial(4));//出错

因为阶乘函数定义内部使用了自身的函数名,所以当阶乘被置为零后,阶乘已不是函数,自然报错啦O (∩_∩) O ~。

可以使用参数。被指向正在执行的函数的指针来避免上面出现的问题:

function 阶乘(num), {   if 才能;(num  & lt;=, 1), {   ,,,return  1;   ,,},{else    ,,,return  num  *, arguments.callee (num 作用;1);   ,,}   }   var  anotherFactorial =, !;   时间=factorial 零;   console.log (anotherFactorial (4));

运行结果:24

但在严格模式下,不能访问<代码>参数。被> var  factorial =, (   ,,,function  f (num), {   ,,,,,if  (num  & lt;=, 1), {   ,,,,,,,return  1;   ,,,,,},{else    ,,,,,,,return  num  *, f (num 作用;1);   ,,,,,}   ,,,}   );   var  anotherFactorial =, !;   时间=factorial 零;   console.log (anotherFactorial (4));

上述内容就是怎么在JavaScript中定义递归函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

怎么在JavaScript中定义递归函数