Math对象和日期对象

本文介绍了JavaScript中的Math对象,包括其属性和方法的使用,如获取圆周率、绝对值、最大值、最小值等,并展示了如何生成指定范围的随机数。此外,通过一个猜数字游戏的案例加深了理解。接着,文章探讨了日期对象,包括创建日期对象的三种方式和常用的get和set方法,并提供了获取当前日期、时间格式化以及计算代码执行时间、倒计时的示例。
摘要由CSDN通过智能技术生成

       相信点进来的小伙伴都是想学Math对象和日期对象的吧,接下来就让我来为大家详细说一下吧。希望能够帮助到大家更好的理解。

一、Math对象

 Math是一个内置对象,具有数学常数和函数的属性和方法。

1、Math对象的使用

Math对象用来对数字进行与数学相关的运算,该对象不是构造函数,不需要实例化对象,可以直接使用静态属性和静态方法。Math对象常用属性和方法如下:

 下面我们通过具体代码演示Math对象方法的使用。读者可以直接在控制台中执行以下代码,查看返回的结果。

Math.PI;        //获取圆周率
Math.abs(-25); //获取绝对值,返回结果:25
Math.PI;       //获取绝对值,自动转换为数字,返回结果:25
Math.PI;      //获取最大值,返回结果:9
Math.PI;     //获取最小值,返回结果:2
Math.PI;     //获取2的4次幂,返回结果:16
Math.PI;     //获取9的平方根,返回结果:3
Math.PI;     //向上取整,返回结果:2
Math.PI;     //向上取整,返回结果:2
Math.PI;     //向下取整,返回结果:1
Math.PI;     //向下取整,返回结果:1
Math.PI;     //四舍五入,返回结果:1
Math.PI;     //四舍五入,返回结果:2
Math.PI;     //四舍五入,返回结果:2
Math.PI;     //四舍五入,返回结果:-1(取最大值)
Math.PI;     //四舍五入,返回结果:-2

2、生成指定范围的随机数

       在Math对象中是使用random()来获取随机数,即Math.random(),每次调用该方法的返回结果不同。该方法返回的结果是一个很长的浮点数,如"0.925045617789475",其范围是0~1(不包括1).

        正因为返回的是很长的浮点数,所以我们不太常用这个Math.random(),但是我们可以借助一些数学公式来转换成任意范围类的随机数,公式为“Math.random()*(max-min)+min”,表示生成大于或等于min且小于max的随机值。示例代码如下。

Math.random() * ( 3 - 1 ) + 1;    //1 <= 返回结果 < 3
Math.random() * ( 20 - 10 ) + 10;    //10 <= 返回结果 < 20
Math.random() * ( 99 - 88 ) + 88;    //88 <= 返回结果 < 99

        上述代码的返回结果是浮点数,当需要获取整数结果时,可以搭配Math.floor()来实现。下面我们通过代码演示如何获取1~3范围内的随机整数,返回结果可能是1、2、3。

funcation 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之间的随机整数。

3、【案例】猜数字的游戏

接下来我们通过一个案例来演示Math对象的使用。程序随机生成一个1~10之间的数字,用户输入所猜数字(1~10以内),系统判断这两个数字的大小。如果用户没有输入数字,则提示“出错啦!!!”,如果用户所猜数字大于随机数,那么提示“你猜大了!”,如果用户所猜数字小于随机数,则提示“你猜小了!”,如果用户所猜数字与该随机数相等,就提示“恭喜你,猜对了!”,此时结束程序。

        案例的具体代码如下。


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;
 
        }
 
}

二、日期对象

        Javascript中的日期对象用来处理日期和时间。例如,秒杀活动中日期的实时显示、时钟效果、在线日历。接下来将对日期对象进行详细讲解。

1、日期对象的使用

        Javascript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数。在创建日期对象时,可以为Date()构造函数传入一些参数,来表示具体的日期,其创建方式如下。

//方式1:没有参数,使用当前系统的当前时间作为对象保存的时间

var date1 = new Date();

//输出结果:Wed Nov 17 2021 14:59:56 GMT+0800 (中国标准时间)

console.log(date1);

//方式2:传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)

var date2 = new Date(2023, 10, 16, 19, 30, 45);

//输出结果:Sat Nov 18 2023 19:30:45 GMT+0800(中国标准时间)

console.log(date2);

//方式3:用字符串表示日期和时间

var date3 = new Date(2023-10-16 19:30:15);

// 输出结果:Wed Oct 16 2019 19:30:15 GMT+0800(中国标准时间)

consloe.log(date3);

        在获取到日期对象后,直接输出对象得到的是一个字符串表示的日期和时间。如果想要用其他格式来表示这个日期和时间,可以通过调用日期对象的相关方法方法来实现。日期对象的常用方法分为get和set两大类,分别如下所示。

Date对象的常用get方法

 Date对象的常用set方法

 下面我们通过具体代码演示Date对象的使用,在控制台中输出当前日期。

 var date = new Date();              // 基于当前日期时间创建Date对象

    var year = date.getFullYear();      //获取年

    var month = date.getMonth() + 1;    //获取月,范围为0~ 11 (0表示一月, 1表示二月,依次类推)

    var day = date.getDate();           //获取日

    //通过数组将星期值转换为字符串

    var week = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];

    //输出date对象保存的时间,示例:今天是2021年11月17日星期三

    console.log('今天是' + year + '年'+ month + '月'+ day + '日' + week[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 s = time.getSeconds();

        s = s<10 ? '0' + s:s;

        return h +':'+ m +':'+ s;
    }

    console.log(getTime());     //输出结果示例: 15:06:55

        这段代码中?用来判断给定数字是否为一位数,如果是一位数则在前面加上“0”

2、【案例】统计代码执行时间

        通过日期对象可以获取从1970年1月1日0时0分0秒开始一直到当前UTC时间所经过的毫秒数,这个值可以作为时间戳来使用。通过时间戳,可以计算两个时间之间的时间差,还可用于加密、数字签名等技术。获取时间戳的方式如下。

//方式1:通过日期对象的vauleOf()或getTime()方法

var date1 = new Date();
consloe.log(date1.valueOf());      //示例结果:1571196996188
consloe.log(date1.getTime());      //示例结果:1571196996188

//方法2:使用“+”运算符转换为数值型

var date2 = +new Date();
consloe.log(date2);          //示例结果:1571196996190

//方法3:使用HTML5新增的Date.now()方法

consloe.log(Date.now());   //示例结果:1571196996190

         在掌握如何获取到时间戳后,下面我们来完成案例的代码编写,具体代码如下。

var timetamp1 = +new Date();

for(var i = 1, str = ''; i <= 90000; i++){

    str += i;

}

var timetamp2 = +new Date();

//示例结果:代码执行时间:14毫秒

console.log('代码执行时间:' + (timetamp2 - timetamp1) + '毫秒');

3、【案例】倒计时

        在一些商业活动网站上经常会出现该商品打折活动还有多久结束,像这样的倒计时效果就可以用日期对象来实现。

        倒计时的核心算法是输入时间减去现在的时间,得出剩余的时间就是要显示的倒计时的时间,这需要把时间都转换成时间戳来进行计算,把得到的毫秒数转换为天数、小时、分钟、秒数。具体代码如下。

function countDown(time) {

            var nowTime = +new Date(); // 返回的是当前时间总的毫秒数

            var inputTime = +new Date(time); // 返回的是用户输入时间总的毫秒数

            var times = (inputTime - nowTime) / 1000; // times是剩余时间总的秒数

            var d = parseInt(times / 60 / 60 / 24); // 把秒数转换成天数  (parselnt把得到        的数转换为整数)

            d = d < 10 ? '0' + d : d;//这里为了让时间数好看一点,比如把4天改成04天,所以加了三元判定,下面也是如此;

            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('这里输入你需要计算的时间')); //在控制台输出你输入时间与你电脑时间的差值就是倒计时;

        var date = new Date(); //获取你电脑当前的时间;

        console.log(date); //在控制台输出你当前电脑时间;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值