前端笔记之JavaScript03——函数

mac2024-06-23  39

<!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)