Math对象和日期对象用法

Math对象

1.Math的定义

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

Math对象常见的方法
成员                                    作用
PI获取圆周率,结果为3.141592653589793
abs( )获取 x 的绝对值,可传入普通数值或是用字符串表示的数值
max ([ valuel [,value2,...])获取所有参数中的最大值
min ([ valuel [,value2,...]])获取所有参数中的最小值
pow ( base , exponent )获取基数( base )的指数( exponent )次幂,即 base - xponent
ceil ( )获取大于或等于 x 的最小整数,即向上取整
floor ( )获取小于或等于 x 的最大整数,即向下取整
round ( )获取 x 的四舍五入后的整数值
random ( )获取大于或等于0.0且小于1.0的随机值
sqrt (  )获取 x 的平方根
代码实例

Math . PI ;                            //获取圆周率
Math . abs (-25);                    //获取绝对值,返回结果:25
Math . abs ('-25');                    //获取绝对值,自动转换为数字,返回结果:25
Math . max (5,7,9,8);                 //获取最大值,返回结果:9
Math . min (6,2,5,3);                 //获取最小值,返回结果:2
Math . pow (2,4);                    //获取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

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


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

语法格式为:Math.random()

//表示生成大于或等于min且小于max的随机值
Math.random()*(max-min)+min;

//表示生成0到max之间的随机整数
Math.floor(Math.random()*(max+1))

//表示生成1到max之间的随即及整数
Math.floor(Math.random()*max+1)

代码示例

// 生成0-1之间的随机数
// [0,1)
var res = Math.random()
console.log(res);
 
// 生成大于或等于min且小于max的随机值
// [1-10)
var res1 = Math.random() * (10 - 1) + 1;
console.log(res1);
 
// 生成0到任意数之间的随机整数
// [0,10]
var res2 = Math.floor(Math.random() * (10 + 1));
console.log(res2);
 
// 生成1到任意数之间的随机整数
// [1,10]
var res3 = Math.floor(Math.random() * 10 + 1);
console.log(res3);

代码案例

1.求 10-20(包含10和20)之间的随机整数

1.求 10-20(包含10和20)之间的随机整数        

// 分析公式
// 1. Math.random() [0, 1) 0 <= x < 1
// 2. Math.random() * (max - min + 1) 公式 注意先计算乘数
// 3. 带入数据
// 4. Math.random() * (20 - 10 + 1)
// 5. Math.random() * (11)
// 6. [0, 1) * 11 ==> [0, 11)
// 7. [0, 11) + min ==> [0, 11) + 10 ==> [10, 21)
// 8. Math.floor([10, 21)); ==> [10, 20](20.后面的所有小数取整都为20)
// Math.floor(Math.random() * (max - min + 1) + min)
// Math.random()获取[0,1)
// Math.random() * (max - min + 1)+min表示获取[10,21)
// Math.floor([10,21))向下取整 [10,20]
 
function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}
console.log(getRandom(10, 20))

2.随机生成颜色RGB(0-255,0-255,0-255)

 2.随机生成颜色RGB(0-255,0-255,0-255)

function getRandom(min, max) {
	return Math.floor(Math.random() * (max - min + 1) + min);
}
function getRGB(min, max) {
    var c1 = getRandom(min, max);
    var c2 = getRandom(min, max);
    var c3 = getRandom(min, max);
    return 'rgb(' + c1 + ', ' + c2 + ', ' + c3 + ')';
}

3.猜数字游戏

        使程序随机生成一个1~10之间的数字,让用户输入一个数字并判断这两个数的大 小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数, 则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。

3.猜数字游戏

        使程序随机生成一个1~10之间的数字,让用户输入一个数字并判断这两个数的大 小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数, 则提示“你猜小了”,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。

//死循环,利用break来跳出循环
 
 
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中的日期对象用来处理日期和时间。

注意:JavaScript中的日期对象需要使用new Date()实例化对象才能使用,Date()是日期对象的构造函数 (和Math是有区别的)。

语法:

// 方式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');
console.log(date3);
// 输出:Thu Apr 06 2023 10:57:56 GMT+0800 (中国标准时间)

                                                     日期对象的常用属性和方法

                                                                  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对象所代表时间的毫秒数

                                                                   set方法

方法作用
setFullYear(value)设置年份
setMonth(value)设置月份
setDate(value)设置月份中的某一天
setHours(value)设置小时数
setMinutes(value)设置分钟数
setSeconds(value)设置秒数
setMilliseconds(value)设置毫秒数
setTime(value)通过从1970-01-01 00:00:00计时的毫秒数来设置时间

代码示例

//获取当前年份:date.getFullYear()
//获取当前月份:date.getMonth() + 1 //(0表示一月,1表示二月以此类推)
//获取当前月份中的某一天:date.getDate()
//获取星期:arr[date.getDay()] //(0表示星期日,1表示星期一以此类推)

function getMyDate() {
    var arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
//获取当前时间
    var date = new Date();
    console.log(date);
    var str = date.getFullYear() + '年' + (date.getMonth() + 1) + '月' +date.getDate() + '日 ' + arr[date.getDay()];
	return str;
}
console.log(getMyDate());

代码案例

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

什么是时间戳?

定义:是获取从1970年1月1日0时0分0秒开始一直到当前UTC时间所经过的毫秒数。

// 方式1:通过日期对象的valueof()或getTime()方法
// valueOf用于获取对象的原始值
var date1 = new Date();
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

案例2:倒计时

怎样做到倒计时?

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

 function countDown(endtime) {

            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 + '秒';
        }
 
        //示例结果:200天00时03分56秒
        console.log(countDown('2023-11-01 00:00:00'));

看到这里就大功告成了,感谢观看

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值