zoukankan      html  css  js  c++  java
  • 递归函数

    递归函数

      • 什么是递归函数
      • 在编程世界里面,递归就是一个自己调用自己的手段
      • 递归函数: 一个函数内部,调用了自己,循环往复
    // 下面这个代码就是一个最简单的递归函数
    // 在函数内部调用了自己,函数一执行,就调用自己一次,在调用再执行,循环往复,没有止尽
    function fn() {
      fn()
    }
    fn()
    • 其实递归函数和循环很类似
    • 需要有初始化,自增,执行代码,条件判断的,不然就是一个没有尽头的递归函数,我们叫做 死递归

    简单实现一个递归

    • 我们先在用递归函数简单实现一个效果
    • 需求: 求 1 至 5 的和
    • 先算 1 + 2 得 3
    • 再算 3 + 3 得 6
    • 再算 6 + 4 得 10
    • 再算 10 + 5 得 15
    • 结束
      • 开始书写,写递归函数先要写结束条件(为了避免出现 “死递归”)
    function add(n) {
      // 传递进来的是 1
      // 当 n === 5 的时候要结束
      if (n === 5) {
        return 5
      }
    }
    
    add(1)
      • 再写不满足条件的时候我们的递归处理
    function add(n) {
      // 传递进来的是 1
      // 当 n === 5 的时候要结束
      if (n === 5) {
        return 5
      } else {
        // 不满足条件的时候,就是当前数字 + 比自己大 1 的数字
        return n + add(n + 1)
      }
    }
    add(1)

    预习:提前了解一下对象

      • 对象是一个复杂数据类型
      • 其实说是复杂,但是没有很复杂,只不过是存储了一些基本数据类型的一个集合
    var obj = {
      num: 100,
      str: 'hello world',
      boo: true
    }
    • 这里的 {} 和函数中的 {} 不一样
    • 函数里面的是写代码的,而对象里面是写一些数据的
    • 对象就是一个键值对的集合
    • {} 里面的每一个键都是一个成员
    • 也就是说,我们可以把一些数据放在一个对象里面,那么他们就互不干扰了
    • 其实就是我们准备一个房子,把我们想要的数据放进去,然后把房子的地址给到变量名,当我们需要某一个数据的时候,就可以根据变量名里面存储的地址找到对应的房子,然后去房子里面找到对应的数据

    创建一个对象

      • 字面量的方式创建一个对象
    // 创建一个空对象
    var obj = {}
    
    // 像对象中添加成员
    obj.name = 'Jack'
    obj.age = 18
      • 内置构造函数的方式创建对象
    // 创建一个空对象
    var obj = new Object()
    
    // 向对象中添加成员
    obj.name = 'Rose'
    obj.age = 20

    Object 是 js 内置给我们的构造函数,用于创建一个对象使用的

  • 相关阅读:
    php 信号量
    .net 反射初体验
    IEnumerable,IQueryable之前世今生
    [SQL]511+512+534+550+569
    [SQL]183+184+185+196+197
    [SQL]3.26--175+176+177+178+180+181+182
    [剑指offer]10.斐波那契数列+青蛙跳台阶问题
    [剑指offer]14-1.剪绳子
    [剑指offer]62.圆圈中最后剩下的数字
    [剑指offer]52.两个链表的第一个公共节点
  • 原文地址:https://www.cnblogs.com/Kuoblog/p/12394027.html
Copyright © 2011-2022 走看看