美文网首页
JS基础案例22-函数练习

JS基础案例22-函数练习

作者: hi__world | 来源:发表于2018-10-11 17:00 被阅读0次
  • 1-100之间的和用函数封装。

<script>
    alert( getSum(200) )

    function getSum(num){
        var sum=0;
        for(var i=1;i<=num;i++){
            sum+=i
        }
        return sum;
    }
</script>
  • 函数封装求圆的周长。

<script>
    //圆的周长=圆周率X半径X2
function getLong(r){
       return Math.PI*r*2;
   }
   console.log(getLong(8))
   //Math.PI 是JS内置的。
</script>
  • 函数封装求圆的面积。

圆的面积计算公式
<script>
// 求圆的和面积(area = pi*r*r)
    alert(getArea(1))
    function getArea(r){
        return Math.PI*Math.pow(r,2);//就是3.14*r的2次方
  }
  //Math,pow(),求次方。
</script>
  • 函数封装判断2个数,3个数的大小。

判断2个数字的大小。

<script>
    function isMax(num1,num2){
        if(num1>num2){
            return num1;
        }
        return num2;

    //return num1>num2?num1:num2;三目运算一句搞定。
    }

    alert(isMax(85,222));
</script>

判断3个数字的大小


<script>
    function isMax(num1,num2,num3){
        if(num1>num2){
            if(num1>num3){
                return num1
            }
            return num1;
        }else if(num2>num3){
            return num2;
        }else{
            return num3
        }
  //return (num1>num2?num1:num2)>num3?(num1>num2?num1:num2):num3;三目运算
    }

    alert(isMax(85,222,33));
</script>
  • 封装求数组中的最大值。

arr=[18,45,0,58,32]

<script>
    var arr = [18, 45, 0, 58, 32,59]
    
    function ArrMax() {
        var arr1=arr[0];
        for(var i=0;i<arr.length;i++){
            if(arr[i]>arr1){
                arr1=arr[i];
            }
        }
        return arr1;
    }
    alert(ArrMax(arr))
</script>
  • 对数组从小到大排序进行封装。

<script>
    var arr = [18, 45, 0, 58, 32,59];
    
    function ArrMax() {
        for(var i=0;i<arr.length;i++){
            for(var j=0;j<arr.length;j++){
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
        return arr;
    }
    alert(ArrMax(arr))
</script>
  • 阶乘封装(本来不想写这个啦,感觉很简单,谁知道,自己马虎,出现BUG,还是练练吧)

<script>
    function getJC(num) {
    var sum=1;
        for(var i=1;i<=num;i++){
            sum*=i;
        }
        return sum;
    }
    console.log( getJC(5) )
</script>
  • 函数封装 数组反转

<script>
    var arr=[1,2,3,4,5,6];
    console.log(arr+"没反转的")

    function reversal(arr) {
        var newArr=[];
        for(var i=arr.length-1;i>=0;i--){
            newArr[newArr.length]=arr[i]
        }
        return newArr;
    }
    console.log(reversal(arr) + "反转后的")

</script>
  • 函数封装 判断是不是素数

<script>
    function PrimeNumber(num) {
        if(num == 1){
            return num+"不是质数"
        }
        for(var i=2;i<num;i++){
            if(num % i === 0){
                return num+"不是质数"
            }
        }
        return num+"是质数"
        
    }
    console.log(PrimeNumber(6))
</script>
  • 斐波那契数列 封装;

    //斐波那契数列1  1  2  3  5  8  13  21 34  55 89  44 233
    function fn1(num) {
        var n1=1,n2=1;
        for(var i=2;i<num;i++){
            var temp=n2;  
                n2=n1+n2;
                n1=temp;
        }
        return n2;
    }
    alert(fn1(12))
  • 输入一个年月日,判断当天是那一年的第几天。

例如:输入2018,10,11 弹出284天。

源码:

<script>
    //第一先知道每个月有多少天,让它累加。 arr = [31,28,31,30,31,30,31,31,30,31,30,31]; 这是每个月的天数,只有2月是不固定的。
    //2月份不固定,是因为有闰年的存在,所以还要判断是不是闰年。就OK啦。

    //先写个判断闰年的函数。
    //闰年的规律是四年一闰,百年不闰,四百年再闰。
      function isRun(year){
          if(year%4===0 && year%100!==0 || year%400===0){
              return true;
          }
          return false;
      }


      function getDays(year,month,day) {
          var arr = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];//月份
          
          for(var i=0;i<month-1;i++){// for循环让前面月份天数相加。
              day+=arr[i];
          }

          if(isRun(year)){//判断如果是闰年就加一天
              day++;
          }
          return day;
      }
      alert(getDays(2018,10,11))
      //alert(getDays(2016,3,1)) 2016年是闰年。
</script>

你也可以再加入一些代码,提示用户输错啦,比如1,3,5,7,8,10,12的day能超过31,闰年2月,不能超过29,等等。

相关文章

  • JS基础案例22-函数练习

    1-100之间的和用函数封装。 函数封装求圆的周长。 函数封装求圆的面积。 函数封装判断2个数,3个数的大小。 判...

  • JS操作属性、函数

    JS操作style属性 JS操作class属性 函数 匿名函数 函数传参 作业 if练习 switch练习

  • JS基础案例17-函数

    1、写两个函数,一个是判断数字是不是偶数,一个比较两个数字大小。 第一个源码: 第二个源码:

  • day05(2017.9.28)

    数组 声明变量是保存数据,数组可以保存多个变量 数组案例 函数 函数基础 函数小案例 arguments(参数)案例

  • js基础复习

    对js基础进行复习:1.函数柯里化:案例: 应用场景参照:https://www.jianshu.com/p/4b...

  • JS案例22-字符串案例

    截取字符串"我爱你中国,我亲爱的母亲",中的"中国,我亲爱的"; "abcoefoxyozzopp"查找字符串中所...

  • JS + Git 测试小练习

    作业链接 js 基础练习js 扩展练习(section-1 & section-2) 提交记录 练习收获 这次作...

  • 前端面试题(持续补充)

    js,node.js基础: 闭包 闭包是能够读取其他函数内部变量的函数。在js中,只有函数内部的子函数可以访问内部...

  • 2017-4-1 VUE

    JS的方法 1、类型判断的方法 2、创建对象构造函数 3、JS基础函数和语法

  • js 函数练习

    1. 不借助临时变量,进行两个整数的交换 原理:a = a + (b - a) 2. 找出下列正数组中的最大差值:...

网友评论

      本文标题:JS基础案例22-函数练习

      本文链接:https://www.haomeiwen.com/subject/rxkyoftx.html