<!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>
前端笔记之JavaScript03——函数
最新推荐文章于 2022-10-29 17:07:07 发布