JavaScript算法练习:翻转字符串&阶乘

2018-03-0906:05:25WEB前端开发Comments2,134 views字数 501阅读模式

翻转字符串&阶乘
Answer:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1342.html

//翻转字符串
function reverseString(str){
    str = str.split('').reverse().join('');
}
reverseString('hello');
  • 1
  • 2
  • 3
  • 4
  • 5
//阶乘
function factorial(num){
    if(num <= 0){
        return 1;
    }else{
        return num*arguments.callee(num-1);
    }
}
factorial(5);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这段代码在W3c中并不能完美执行,但可以在浏览器中运行,原因是:argument.callee不是一个标准函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1342.html

使用函数arguments.callee 函数解耦
arguments有一个名叫callee属性,该属性是一个指针,指向拥有arguments对象的函数。
原函数的执行与函数factorialize紧紧耦合到了一起,这不优雅,但可以使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1342.html

下面这段代码可以完美运行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1342.html

function factorial(num) {
  if (num>0){
    return (num * factorial(num - 1));}
  else
  return (1);
}
factorial(5);
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/1342.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/1342.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定