Math对象和日期对象

什么是Math对象

Math是JavaScript的原生对象,用来对数字进行与数学相关的运算,该对象不是构造函数,不需要实例化对象,可以直接使用其静态属性和静态方法,所有的属性和方法都必须在Math对象上调用。

Math对象的常用方法

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

示例代码

1.圆周率
//获取圆周率
Math.PI
2.绝对值
//获取绝对值
Math.abs(-1)	//返回结果:1
Math.abs('-11')	//自动转换为数字,返回结果:11
3.最大值和最小值
//获取最大值
Math.max(1, 2, 3, 4, 5)	//返回结果5
//获取最小值
Math.min(1, 2, 3, 4, 5)	//返回结果1
4.x的y次幂
//获取基数(base)的指数(exponent)次幂
Math.pow(2, 4)	//返回结果16
5.x的平方根
//获取x的平方根
Math.sqrt(9)	//返回结果3
6.向上取整和向下取整
//向上取整
Math.ceil(1.9)	//返回结果2
//向下取整
Math.floor(1.9)	//返回结果1
7.四舍五入
//四舍五入
Math.round(1.5)		//返回结果2
Math.round(-1.5)	//返回结果-1(取较大值)
8.随机数
//生成一个范围在0~1(不含1)内的随机数
Math.random() //返回结果是一个很长的浮点数,其范围是[0,1)
//生成大于或等于min且小于max的随机值
Math.random() * (max - min) + min
//生成0到任意数之间的随机整数
Math.floor(Math.random() * (max + 1))
//生成1到任意数之间的随机整数
Math.floor(Math.random() * max + 1)

案例

利用随机数,实现在数组中随机获取一个元素

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)])

随机生成颜色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 + ')'
}
console.log(getRGB(0, 255))

随机生成十六进制颜色

function getRandom(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min)
}
function getColor(){
	var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
	var str = '#'
	for(var i = 0; i < 6; i++){
		str += arr[getRandom(0, 15)]
	}
	return str
}
console.log(getColor())

猜数字游戏

function getRandom(min, max){
	return Math.floor(Math.random() * (max - min + 1) + min)
}
var random = gerRandom(1, 10)
while(true){	//死循环,利用break来跳出循环
	var num = promat('猜数字,范围在1~10之间。')
	if(num > random){
		alert('你猜大了')
	}
	else if(num < random){
		alert('你猜小了')
	}
	else{
		alert('恭喜你,猜对了')
		break
	}
}

什么是日期对象

Date对象是JavaScript内置的对象,通过它您可以访问计算机系统的时间,此外,Date 对象中还提供了多种用于管理、操作和格式化时间/日期的方法。

注意

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

语法

//方式1:获取当前时间
var date = new Date()
console.log(date)
//输出:Sat Apr 15 2023 16:36:17 GMT+0800 (中国标准时间)

//方式2:传入年、月、日、时、分、秒(月的范围是0~11,即真是月份-1)
var date = new Date(2023, 03, 15, 16, 38, 30)
console.log(date)
//输出:Sat Apr 15 2023 16:38:30 GMT+0800 (中国标准时间)

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

//总结
- 如果Date()不写参数,就返回当前时间
- 如果Date()里面写参数,就返回括号里面输入的时间

日期对象常用的get方法(日期格式化)

方法作用
getFullYear()获取表示年份的四位数字,如2023
getMonth()获取月份,范围0~11(0表示一月,1表示二月,依次类推)
getDate()获取月份中的某一天,范围1~31
getDay()获取星期,范围0~6(0表示星期天,1表示星期一,依次类推)
getHours()获取小时数,返回0~23
getMinutes()获取分钟数,范围0~59
getSecondes()获取秒数,范围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计时的毫秒数来设置时间

案例

统计代码执行时间
//方式1:通过日期对象的valueOf()或getTime()方法
var date = new Date()
//valueOf()用于获取对象的原始值
console.log(date.valueOf())	//实例结果:1681549629238
console.log(date.getTime())	//实例结果:1681549629238

//方式2:使用"+"运算符转换为数值型
var date = + new Date()
console.log(date)	//实例结果:1681549781956

//方式3:使用HTML5新增的Date.now()方法
console.log(Date.now())	//实例结果:1681549889801
格式化日期对象
function getTimer(){
	//获取当前时间
	var date = new Date()
	var h = date.getHours()
	var m = date.getMinutes()
	var s = date.getSeconds()
	//使用三元表达式格式化日期
	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())
倒计时
function getCountTime(endTime){
	var d, h, m, s;
	//1. 用用户输入的时间减去开始的时间就是倒计时
	//2. 但是要注意,我们得到是毫秒数,然后把这个毫秒数转换为相应的天数时分秒就好了
	//除以1000以后是在秒级进行操作(数字小利于计算),不除以1000则是在毫秒级进行操作
	var countTime = parseInt((new Date(endTime) - new Date()) / 1000);
	//3. 把得到的毫秒数转换当前的天数时分秒
	console.log(countTime);
	d = parseInt(countTime / 60 / 60 / 24); // 计算天数
	h = parseInt(countTime / 60 / 60 % 24); // 计算小时
	m = parseInt(countTime / 60 % 60); // 计算分数
	s = parseInt(countTime % 60); // 计算当前秒数
	return '还剩下' + d + '天' + h + '时' + m + '分' + s + '秒 ';
}
console.log(getCountTime('2023-04-15 17:20'));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值