我又来写博客啦
今天我们来学习以下内容
目录
1.Math对象的使用
2.生成指定范围的随机数
3.案例:猜数字游戏
4.日期对象的使用
5.案例:统计代码执行时间
6.案例:倒计时
好啦进入我们今天的正题!!!!!!
1.Math对象的使用
学习Math对象首先我们要了解一下什么是Math对象,据我从书上翻阅所知,Math对象用来对数字进行与数学相关的运算,该对象不是构造函数,不需要实例化对象,可以直接使用其静态属性和静态方法。
那我们常用的Math对象的方法和属性又有哪些呢
Math属性 | 解释 |
---|---|
.random | 0-1之间的随机数(没有1) |
.pow(x,y) | 求x的y次方 |
.sqrt | 获取平方根 |
.round | 四舍五入 |
.ceil | 向上取整 |
.floor | 向下取整 |
.PI | 取π的值 |
.abs | 取绝对值 |
.max | 取最大值 |
.min | 取最小值 |
现在我们用代码来实现一下以上的方法和属性
.random()方法
// 获取一个从0到9的随机整数数字
var r = Math.random();
var num = parseInt(Math.random() * 10);对于整个函数只是单纯的负责取整,而不是四色五入
console.log(num);
.pow(x,y)方法
var num = Math.pow(2, 8);
console.log(num); // 256
.sqrt()方法
var a=Math.sqrt(4); // 2
console.log(a)
.round()
var num = 1.4;
var num1 = 1.5;
console.log(Math.round(num)); // 1
console.log(Math.round(num1)); // 2
.ceil()
var num = 1.1;
var result = Math.ceil(num);
console.log(result); // 2
.floor()
var num = 1.1;
var result = Math.floor(num);
console.log(result); // 1
.PI()
var b=Math.PI
console.log(b)
.abs()
// 定义一个负数
var num2 = -10;
// 获取它的绝对值
var abs = Math.abs(num2);
// 输出
console.log(abs); // 10
.max()
var max = Math.max(1, 2, 56, 78, 99, 0, 46, 23);
console.log(max);//99
.min()
var min = Math.min(1, 2, 56, 78, 99, 0, 46, 23);
console.log(min);//0
好啦,代码都演示完了,让我们做一个关于随机数的案例
2.生成指定范围的随机数
我们都知道Math.random()是用来获取随机数的,每次调用该方法的返回值都是不同的,该返回值的结果是一个很长的浮点数,它的范围是0—1.
Math.random返回的随机数不怎么常用,我们可以借助一些数学公式来转换成任意范围内的的随机数,公式为Math.random()*(max-min)-min它表示生成大于或等于min且小于max的随机数
代码实现:
// 生成大于或等于min且小于max的随机值
// [1-10)
var res1 = Math.random() * (10 - 1) + 1;
console.log(res1);
当需要获取整数结果时,可以搭配Math.floor()【向下取整】来实现
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
console.log(getRandom(1,3));//最小值1,最大值3
还可以使用Math.floor(Math.random()*(max+1))表示生成0到max之间的随机整数,使用Math.floor(Math.random()*max+1)表示生成1到max之间的随机整数
function getRandom(min, max) {
// Math.floor向下取整
return Math.floor(Math.random() * (max - min + 1) + min);
}
console.log(getRandom(10, 20))
var arr = ['apple', 'banana', 'orange', 'pear']
// 通过getRandom函数获取随机数
console.log(arr[getRandom(0, arr.length - 1)])
3.案例:猜数字游戏
知道了这些方法让我们来试验一下,做一个案例
案例条件:
使程序随机生成一个1~10之间的数字,并让用户输入一个数字,判断这两个数的大 ,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数, 则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
var random = getRandom(1, 10);
while (true) { //死循环,利用break来跳出循环
var num = prompt('猜数字,范围在1~10之间。');
if (num > random) {
alert('你猜大了');
}
else if (num < random) {
alert('你猜小了')
}
else {
alert('恭喜你,猜对了');
break;
}
}
以上就是有关Math对象的方法啦,学完这一节我们来学习一下日期对象吧
在我们日常生活中有许多关于日期的地方,如秒杀活动中的日期显示,时钟效果,手机日历等都有用到日期对象,在javascript中什么又是日期对象呢,听其名知其意,日期对象就是用来处理日期和时间的,既然已经知道了它的概念那我们就了解一下它的用法
4.日期对象的使用
注意:日期对象需要使用new Date()实例化对象才能使用,其中Date()是日期对象的构造函数
// 方式1:获取当前时间
var date1 = new Date();
console.log(date1)
// 输出:Wed Apr 05 2023 20:57:12 GMT+0800 (中国标准时间)
// 方式2:传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)
var date2 = new Date(2023, 03, 06, 10, 57, 56);
console.log(date2)
// 输出:Thu Apr 06 2023 10:57:56 GMT+0800 (中国标准时间)
// 方式3:用字符串表示日期和时间
var date3 = new Date('2023-04-06 10:57:56');
了解了日期对象的一些基本概念之后,我来给你们梳理一些Date()对象常用get方法和set方法
Date对象的常用的get方法
方法 | 作用 |
getFullYear() | 获取表示年份的4位数 |
getMonth() | 获取月份,范围0-11 |
getDate() | 获取月份中的某一天 |
getDay() | 获取星期 |
getHours() | 获取小时数 |
getMinutes() | 获取分钟数 |
getSeconds() | 获取秒数 |
getMilliseconds | 获取毫秒数 |
getTime() | 获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 |
方法 | 作用 |
setFullYear(value)
|
设置年份
|
setMonth(value)
|
设置月份
|
setDate(value)
|
设置月份中的某一天
|
setHours(value)
|
设置小时数
|
setMinutes(value)
|
设置分钟数
|
setSeconds(value)
|
设置秒数
|
setMilliseconds(value)
|
设置毫秒数
|
setTime(value)
|
通过从
1970-01-01 00:00:00
计时的毫秒数来设置时间
|
我们用代码来实现一下这两种Date()方法
var date=new Date();//基于当前日期时间创建Date对象
var year =date.getFullYear();//获取年
var month=date.getMonyth();//获取月
var day=date.getDate();//获取日
var week=['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
console.log('今天是'+year+'年'+month+'月'+day+'日'+wekk[date.getDay()]);
在开发中我们需要将日期对象中的时间转换成指定格式
function getTime(){
var time=new Date();
var h=time.getHours();
h=h<10?'0'+h:h;
var m=time.getMinutes();
m=m<10?'0'+m:m;
var d=time.getSeconds();
s=s<10?'0'+s:s;
return h+':'+m+':'+s;
}
console.log(getTime());
学了日期对象后让我们敲两个案例试试手,不管是统计代码的执行时间还是一个活动的倒计时,我们都要运用到日期对象,那下面就让我们用日期对象完成以下案例吧
5.案例:统计代码执行时间
通过时间戳可以计算两个时间之间的时间差还可以用于加密,数字签名等技术中
// 方式1:通过日期对象的valueof()或getTime()方法
var date1 = new Date();
// valueOf用于获取对象的原始值
console.log(date1.valueOf()); // 示例结果:1571196996188
console.log(date1.getTime()); // 示例结果:1571196996188
// 方式2:使用“+”运算符转换为数值型
var date2 = + new Date();
console.log(date2); // 示例结果:1571196996190
// 方式3:使用HTML5新增的Date.now()方法
console.log(Date.now()); // 示例结果:1571196996190
6.案例:倒计时
function getTimer() {
// 获取当前时间
var date = new Date();
// var str = date.getHours() + ':' + date.getMinutes() + ':' +
date.getSeconds();
var h = date.getHours();
var m = date.getMinutes();
var s = date.getMinutes();
// 使用三元表达式格式化日期
h = h < 10 ? '0' + h : h
m = m < 10 ? '0' + m : m
s = s < 10 ? '0' + s : s
return h + ':' + m + ':' + s;
}
console.log(getTimer());
今天的代码就写到这啦
你提问,我修改
下次的代码下次说啦,走啦走啦