有关于JavaScriptMath对象及日期对象

本文详细介绍了JavaScript内置的Math对象,包括其属性如PI、常数和方法如abs、pow、sqrt等。此外,还讲解了如何生成随机数以及Math对象在游戏如猜数字中的应用。同时,文章也探讨了Date对象的使用,如实例化、获取和设置日期时间的方法,以及如何进行日期操作和计算时间差。最后,文中给出了倒计时功能的实现示例。
摘要由CSDN通过智能技术生成

Math对象

1.Math对象的使用

关于Math对象的使用:

Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math 不是一个函数对象。

Math 用于 Number 类型。它不支持 BigInt

它表示构造函数,不需要实例化对象,可以直接使用其静态属性和静态方法

Math对象的常用属性和方法

成员作用
Math.PI获取圆周率,结果为3.141592653589793
Math.abs()获取x的绝对值,可传入普通数值或是用字符串表示的数值
Math.pow(base,exponent)获取基数(base)的指数(exponent)次幂, 即是baseexponent
sqrt(x)获取x的平方根
Math.ceil()获取大于或等于x的最小整数,即向上取整(舍弃小数部分,整数部分加1)
Math.floor()获取小于或等于x的最大整数,即向下取整(舍弃小数部分,整数部分不变)
Math.round()四舍五入(就近取整)-3.5结果是-3
Math.random()获取大于或等于0.0且小于1.0的随机值
Math.max()/Math.min()求所有参数中的最大值或最小值

示例代码:

Math.PI;           //获取圆周率
Math.abs(-1);      //获取绝对值  返回结果是:1
Math.abs('-24')    //获取绝对值,简子服装换成数字类型   返回结果是:24
Math.max(1,2,7,3,5);//获取最大值   返回结果是:7
Math.min(3,2,9,4,5);//获取最小值   返回结果是:2
Math.pow(2,4);//获取基数(base)的指数(exponent)次幂 返回结果是:2的4次幂:16
Math.sqrt(9);//获取9的平方根   返回结果是:3
Math.ceil(1.1);//向上取整     返回结果是:2
Math.ceil(1.9);//向上取整     返回结果是:2
Math.floor(1.1);//向下取整    返回结果是:1
Math.floor(1.9);//向下取整    返回结果是:1
Math.round(1.1);//四舍五入    返回结果是:1
Math.round(1.5);//四舍五入    返回结果是:2
Math.round(1.9);//四舍五入    返回结果是:2
Math.round(-1.5);//四舍五入   返回结果是:-1(取较大值)
Math.round(-1.6);//四舍五入   返回结果是:-2

生成指定范围的随机数:

Math.random()用来获取随机数,每次调用该方法的返回的结果都不相同.该方法的返回结果是一个很长的浮点数,其范围是0~1(且不包括1)

公式:
  • Math.random()*(max-min)+min,表示生成大于或等于min且小于max 的随机数;

  • Math.random()*(max+1),表示生成0~max之间的随机数(包括max);

  • Math.random()*max+1,表示生成1~max之间的随机数;

示例代码如下:

Math.random()*(3-1)+1     //1<=返回结果<3
Math.random()*(20-10)+10    //10<=返回结果<20
Math.random()*(99-88)+88     //88<=返回结果<99
//获取整数结果
function getRandom(min,max){
    return Math.floor(Math.random()*(max-min+1)+max)
}
console.log(2,6)    //获取2~6之间的随机整数(包括6)[2,6]
var res1=Math.floor(Math.random()*10+1)//获取[1,10]之间的随机数

//获取数组中的一个随即元素
var ['pink','green','purple','yellow','white']
//调用前面携程getRandom函数
console.log(arr[getRandom(0,arr.length-1)])

猜数字游戏:

程序随机生成一个1~10之间的数字,让用户猜测,并且比较大小

function(min,max){
    return Math.floor(Math.random()*(max-min+1)+min)
}
var random=getRandom(1,10)
while(true){   //死循环,只能利用第15行的break跳出循环
    let num=+prompt('请输入你猜测1~10的数字')
    if(num<random){
        alert('不好意思,你猜小了')
    }
    else if(num>random){
        alert('不好意思,你猜大了')
    }
    else{
        alert('恭喜你,猜对啦')
        break
    }
}

日期对象:

日期对象的使用:

JavaScript中日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数.

在创建日期对象时,可为Date()构造函数传入一些参数,来表示具体的日期:

示例代码:

//方式1:当获取当前日期为对象时,不需要传入参数
var date1=new Date();
console.log(date1)
//输出结果是:Sat Apr 15 2023 10:06:48 GMT+0800 (中国标准时间)

//方式2:传入年月日时分秒(月的范围是0~11,则真实月份-1)
var date2=new Date(2023,03,15,10,57,56)
console.log(date2) 
//输出结果是:Sat Apr 15 2023 10:57:56 GMT+0800 (中国标准时间)

//方式3:用字符串表示日期和时间
var date3 = new Date('2023-04-15 10:19:55')
console.log(date3)
//输出结果是:Sat Apr 15 2023 10:19:55 GMT+0800 (中国标准时间)

日期对象的常用方法分为getset两大类:

Date对象的常用get方法:
方法作用
getFullYear()获取表示年份的4位数字,如2020
getMonth()获取月份,范围0~11(0表示一月,1表示二月,依次类推)
getDate()获取月份中的某一天,范围1~31
getDay()获取星期,范围0~6(0表示星期日,1表示星期一,依次类推)
getHours()获取小时数,返回0~23
getMinutes()获取分钟数,范围0~59
getSeconds()获取秒数,范围0~59
getMilliseconds()获取毫秒数,范围0~999
getTime()获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数
Date对象的常用set方法:
方法作用
setFullYear(value)设置年份
setMonth(value)设置月份
setDate(value)设置月份中的某一天
setHours(value)设置小时数
setMinutes(value)设置分钟数
setSeconds(value)设置秒数
setMilliseconds(value)设置毫秒数
setTime(value)通过从1970-01-01 00:00:00计时的毫秒数来设置时间

示例代码:

 // 获取当前时间
var date = new Date();
console.log(date)
// 获取当前年份
var year=date.getFullYear()
console.log(year)
// 获取当前月份
var month=date.getMonth() + 1
console.log(month)
// 获取当前日期
var date2=date.getDate()
console.log(date2)
// 获取当前星期
var day=date.getDay()  
console.log(day)


function getMyDate() {
    var arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    var str = date.getFullYear() + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日 ' + arr[date.getDay()]
    return str
}
var res = getMyDate()
console.log(res)//输出结果:2023年4月15日 星期六

案例:统计代码的执行时间

通过日期对象可以获取从1970年1月1日0时0分0秒开始到当前的UTC时间所经过的毫秒数,这个值可以作为时间戳来使用;

通过时间戳,可以计算出两个时间之间的时间差,还可以用于加密,数字签名等技术中;

//方式1:日期对象的valueOf()或者getTime()方法
var date1=new Date();//valueOf用于获取对象的原始值
console.log(date1.valueOf());//示例结果:1681528726329
console.log(date1.getTime());//示例结果:1681528726329
//方式2:使用“+”运算符转换为数值型
var date2=+new Date();
console.log(date2);//示例结果:1681528726330
//方式3:使用HTML5新增的Date.now()方法
console.log(Date.now());//示例结果:1681528726330


//案例代码:
var timestamp1=+new Date()
for(var i=1,str='';i<=90000;i++){//同时声明变量i和变量str
    str+=i
}
var timestamp2=+new Date()
console.log('代码执行时间为:'+(timestamp2-timestamp1)+'毫秒')
//示例结果:代码执行时间:25毫秒

案例2:倒计时

倒计时的核心算法是输入的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间,这需要吧时间都转化成时间戳(毫秒数)来进行计算,把得到的毫秒数转换为天数,小时,分钟,秒钟:

示例代码:

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)
    s = s <10 ? '0'+s:s
    return d+'天'+h+'时'+m+'分'+s+'秒'
}
console.log(countDown('2023-04-15 15:00:00'))
//输出结果:00天03时10分27秒
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值