前端笔记之JavaScript03——函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>作业3</title>
    <!--函数封装练习-->
    <script>
        /*
        函数封装 - 生成 n ~ m 的随机数

            题目描述:使用Math对象,获取指定范围随机整数

            函数名:randomInt(min, max)

            函数参数:

          参数名  参数类型   参数描述
          min     number    随机区间的最小值
          max     number    随机区间的最大值

            函数返回值:随机整数

            题目提示:随机数用 Math.random()

            例:调用函数 randomInt(1,5),返回结果为 1 ~ 5 之间的一个随机整数。
        */
        function randomInt(min, max){
            //同时为负值时,返回-1表示错误
            if (min < 0 && max < 0){
                return -1;
            }
            //保证max为最大值
            if (max < min){
                var temp = max;
                max = min;
                min = temp;
            }
            //获取min~max区间值
            /*while(true){
                var rand_num = Math.floor(Math.random()*(max+1));
                if (rand_num >= min){
                    return rand_num;
                }
            }*/
            if (min < 0){
                min = 0;
            }
            return Math.floor(min + Math.floor(Math.random()*(max+1)));
        }
        console.log("-5~5的随机数", randomInt(-5, 5));
        /*
        函数封装 - rgb 随机颜色封装

            题目描述:使用Math对象,获取一个 rgb 的随机颜色

            函数名:randomRGBColor()

            函数参数:无需传参

            函数返回值:rgb 随机颜色字符串

            题目提示:rgb 颜色取值范围 0 ~ 255,随机数用 Math.random()

            例:调用函数 randomRGBColor(),返回结果为  “rgb(15,25,255)”
        */
        function randomRGBColor() {
            var r = Math.floor(Math.random()*266);
            var g = Math.floor(Math.random()*266);
            var b = Math.floor(Math.random()*266);

            return "rgb("+r+","+g+","+b+")";
        }
        console.log("rgb随机颜色", randomRGBColor());
        /*
        函数封装 - 16进制随机颜色

            题目描述:使用Math对象,获取一个16进制的随机颜色

            函数名:randomHexColor()

            函数参数:无需传参

            函数返回值:十六进制随机颜色字符串

            题目提示:16进制包括 “ 0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F ”

                例:调用函数 randomHexColor(),返回结果为 “#F23A4B”
         */
        function randomHexColor() {
            var num = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];
            var hex = "#";
            //获取六位随机码
            for (var i=0; i < 6; i++){
                var index = Math.floor(Math.random()*16);
                hex += num[index];
            }

            return hex;
        }
        console.log("16进制随机颜色", randomHexColor());
        /*
        函数封装 - 日期格式化封装

            题目描述:使用 Date 对象,获取当前日期的格式化字符串

            函数名:formatDate()

            函数参数:无需传参

            函数返回值:'yyyy-mm-dd' 日期格式字符串

            题目提示:new Date() 创建日期对象

            例:调用函数 formatDate(),返回结果为 “2019-08-24”
        */
        function formatDate() {
            var date = new Date();
            var year = date.getFullYear();
            var month = zero(date.getMonth() + 1);
            var day = zero(date.getDate());
            return year + "-" + month + "-" + day;
        }
        console.log("日期格式化", formatDate());
        /*
        函数封装 - 时间格式化封装

            题目描述:使用 Date 对象,获取当前时间的格式化字符串

            函数名:formatTime()

            函数参数:无需传参

            函数返回值:'HH-MM-SS' 时间格式字符串

            题目提示:new Date() 创建日期对象

            例:调用函数 formatTime(),返回结果为   “09:05:10”
        */
        function formatTime() {
            var date = new Date();
            var HH = zero(date.getHours());
            var MM = zero(date.getMinutes());
            var SS = zero(date.getSeconds());
            return HH+"-"+MM+"-"+SS;
        }
        console.log("时间格式化", formatTime());
        /*
        函数封装 - 小于 10 补 0

            题目描述:使用 if 分支判断,如果小于 10 的数补 0

            函数名:zero(num)

            函数参数:

              参数名  参数类型   参数描述
            num    number 数值型数据

            函数返回值:小于 10 返回 补 0 后的字符串,大于 10 返回原数据

            题目提示:if else 分支语句处理两种情况

            例: 调用函数  zero(5) 返回结果为  “05”   ,调用函数  zero(10) 返回结果还是 10
        */
        function zero(num) {
            if (!isNaN(num) && num < 10) {
                return "0"+num;
            }
            return num;
        }
        console.log("小于10补0", zero(9));
    </script>
    <!--非函数封装练习-->
    <script>
        /*1. 获取系统时间,根据获取的星期数据,在页面中输出"今天是星期几",(如:今天是星期六)*/
        var date = new Date();
        var days = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
        document.write("今天是"+days[date.getDay()]);
        /*2. 准备一个数组,存放组员名字,在调用函数的时候可以随机点名。*/
        var members = ["邓嘉明", "江玲玲", "卢杰安", "沈贵佑", "吴浩林", "吴锦业", "王荣生", "严杰雯", "周健锋", "卓毅青", "张志豪"];
        var index = Math.floor(Math.random()*members.length);
        console.log("点名点到",members[index]);
        /*3. 准备一个数组,翻转数组数据,如 [1,2,3,4] 翻转后变成 [4,3,2,1]。*/
        var data = [1,2,3,4];
        console.log("原数据", data);
        for (var i = 0; i < data.length/2; i++){
            var temp = data[i];
            data[i] = data[data.length-1-i];
            data[data.length-1-i] = temp;
        }
        console.log("翻转后数据", data);
        /*4. 准备一个数组,求数组中的最大值,如 [1,2,3,4] 的最大值为 4。*/
        var data1 = [1,2,3,4];
        var max = data1[0];
        for (var i = 1; i < data1.length; i++){
            if (data1[i] > max){
                max = data1[i];
            }
        }
        console.log("[1,2,3,4] 的最大值为", max);
        /*5. 准备一个数组,求数组中的最小值,如 [1,2,3,4] 的最小值为 1。*/
        var data2 = [1,2,3,4];
        var min = data2[0];
        for (var i = 1; i < data2.length; i++){
            if (data2[i] < min){
                min = data2[i];
            }
        }
        console.log("[1,2,3,4] 的最小值为", min);
    </script>
    <!--进阶作业-->
    <script>
        /*
        函数封装 - 数组冒泡排序

            题目描述:利用两层 for 循环,实现数组从小到大排序。
    
                函数名:arraySort(arr)
    
            函数参数:
    
              参数名  参数类型   参数描述
            arr    array  数组
    
            函数返回值:从小到大排序的数组
    
            题目提示:两层 for 循环,里层循环利用 if 分支比较大小,交换位置;外层循环让里层循环重复执行多次。
    
                例:调用函数  arraySort([5,2,3,1,4])  ,返回结果为  [1,2,3,4,5]
        */
        function arraySort(arr) {
            for (var i = 0; i < arr.length; i++){
                for (var j = i; j < arr.length; j++){
                    if (arr[i] > arr[j]) {
                        var temp = arr[i];
                        arr[i] = arr[j];
                        arr[j] = temp;
                    }
                }
            }
            return arr;
        }
        console.log("数组冒泡排序", arraySort([5,2,3,1,4]));
    </script>
</head>
<body>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值