(一)Math对象的使用
1.Math对象用来对数字进行数学相关的运算,可以直接使用其静态属性和静态方法,读者可以直接在控制台中执行代码(代码如下)
<script>
//获取圆周率
Math.PI;
//获取绝对值
Math.abs(-1);
Math.abs('-11');
//获取最大值
Math.max(1,2,3,4,5);
//获取最小值
Math.min(1,2,3,4,5);
//获取2的4次幂
Math.pow(2,4);
//获取x的平方根
Math.sqrt(9);
//向上取整(舍弃小数部分呢,整数部分 +1)
Math.ceil(1.9);
//向下取整(舍弃小数部分,整数部分不变)
Math.floor(1.1);
//四舍五入
Math.round(1.5);
//四舍五入
Math.round(-1.6);
</script>
在控制台执行代码如下:
2.案例 生成指定范围的随机数
由于Math.random()返回的这个随机数不太常用,我们可以借助一些数学公式来转换成任意范围内的随机数,公式为:Math.random()*(max-min)+min ,表示生成大于或者等于min且小于max的随机数,(代码如下)
<script>
Math.random()*(3-1)+1;//1<=返回结果<3
Math.random()*(20-10)+10;//10<=返回结果<20
Math.random()*(99-88)+88;//88<=返回结果<99
</script>
上述代码的返回结果是浮点型,当需要获取整数结果时,可以搭配 Math.floor()来实现,下面我们通过代码演示如何获取1-10范围内的随机整数,返回结果可能是1-10中的任何一个(代码和结果如下)
<script>
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1)+min)
}
console.log(getRandom(1,10));
</script>
2.案例 猜数字游戏
使程序随机生成一个1-10之间的数字,并让用户输入一个数字,判断这两个数的大小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数,那么提示“你猜小了”,如果两个数相等,就提示“恭喜你,猜对了”。(代码和结果如下)
<script>
function getRandom(min,max){
return Math.floor(Math.random()*(max-min+1)+min);
}
var random=getRandom(1,10);
while(true){
var num=prompt("猜数字,范围在1-10之间。");
if(num>random){
alert('你猜大了');
}else if(num<random){
alert('你猜小了');
}else{
alert('恭喜你,猜对了');
break;
}
}
</script>
(二)日期对象的使用
1.JavaScript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数。在创建日期对象时,可以为Date()构造函数传入一些参数,来表示具体的日期,创建方法如下:
<script>
//方法一:使用当前系统的当前时间作为对象保存的时间
var date1=new Date();
console.log(date1);
//方法二:年 月 日(0-1,真实月份-1) 日 时分秒
var date2=new Date(2023,03,13,11,15,42)
console.log(date2)
//方法三:传字符串表示日期和时间
var date3=new Date('2023-03-13 11:15:42')
console.log(date3)
</script>
2.Date对象的get方法(代码如下):
<script>
function getDate(){
var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
var date=new Date();
console.log(date);
//获取年份
console.log(date.getFullYear())
//获取月份
console.log(date.getMonth()+1)
//获取日
console.log(date.getDate());
//获取天
console.log(date.getDay());
//获取星期几
console.log(arr[date.getDay()]);
return str=date.getFullYear()+'年'+(date.getMonth()+1)+'月'+date.getDate()+'日'+' '+arr[date.getDay()]
}
var res=getDate();
console.log(res)
</script>
3.案例 统计代码执行时间
<script>
//方法1:通过日期的对象valueOf()或getTime()方法
var date1=new Date();
console.log(date1.valueOf());
console.log(date1.getTime());
//方法2:使用“+”运算符转换成数值型
var date2=+new Date();
console.log(date2);
//方法3:使用HTNL5新增的Date.now()方法
console.log(Date.now())
</script>
4.案例 倒计时
<script>
function countDown(time){
var nowTime=+new Date();
var inputTime=+new Date(time);
var times=(inputTime-nowTime)/1000;
var d=parseInt(times/60/60/24);
d=d<10?'0'+d:d;
var h=parseInt(times/60/60%24);
h=h<10?'0'+h:h;
var m=parseInt(times/60%60);
m=m<10?'0'+m:m;
var s=parseInt(times/60%60);
s=s<10?'0'+s:s;
return d+'天'+h+'时'+m+'分'+s+'秒';
}
console.log(countDown('2019-10-22 10:56:57'));
</script>