ES6的类和递归以及小案例

1.什么是递归?

(1) 程序自我调用,简单理解就是函数自己调用自己。目的是为了处理不确定层级的相同数据结构的数据处理。

(2) 优点:代码更简洁清晰,可读性更好;

(3) 缺点:时间和空间消耗比较大、很多计算都是重复的、调用栈可能会溢出。

2. 案例

阶乘 :

  // 阶乘
    function fun(n){
      // n等于1时结束函数返回1
      if(n==1) return 1
      return n*fun(n-1)
    }
     console.log(fun(5)); 

用es6类计算圆的面积和周长 :

 // 用es6计算圆的面积和周长
    class Circle{
        // r为半径
        constructor(r){
         this.r = r
        }
        Area(){
            var num = Math.PI.toFixed(2)
            return  `半径为${this.r}的圆的面积为`+num*this.r**2
        }
        Length(){
            var num2 = Math.PI.toFixed(2)
            return `半径为${this.r}的圆的周长为`+2*num2*this.r
        }
    }
      let cir = new Circle(4)
      console.log(cir.Area());
      console.log(cir.Length());

 类的继承性 :

 class Person{
        // 使用constructor创建构造函数 this指向构造函数实例
        constructor (name,light,weigth){
            this.name=name
            this.light=light
            this.weigth=weigth
        }
        say(){
            console.log(this.name+'唱歌');
        }
    }
    let obj = new Person('刘德华','180','150')
    console.log(obj);
    obj.say()
    let obj2 = new Person('刘亦菲','170','95')
    console.log(obj2);
    obj2.say()
    // 继承性
    class Son extends Person{
       constructor(name,light,weigth,age){
        //  // 如果子类有自己的构造方法,需要用到super强制调用父类构造方法
        super(name,light,weigth)
        this.age=age
       }
    }
    let son = new Son("杨颖",'165','90',"32")
    console.log(son);

用递归实现 斐波那契数列 :

 function fn(n){
      // 第一次和第二次的值都为1
        if(n==1 || n==2) return 1
        return fn(n-2)+fn(n-1)
     }
    //  传的参数表示第n次
     console.log(fn(7));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值