美文网首页
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-函数练习

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