七,JavaScript的Math和Date对象

这篇博客详细介绍了JavaScript中的Math对象,包括获取圆周率、随机数、取整、开根号等数学方法,并讲解了如何进行进制转换。此外,还深入探讨了Date对象的使用,如获取和设置日期、时间戳以及格式化输出时间。内容涵盖了从基本的数学运算到复杂的日期处理,是理解JavaScript中时间日期和数学操作的重要参考资料。
摘要由CSDN通过智能技术生成

一,Math

(一),概念

Math是js内置的一个对象
其中有很多属性和方法都跟数学相关

(二),属性

	Math.PI 	// 	π 圆周率
	console。log( Math.PI ); 	// 3.141592653589793

(三),方法

1,Math.random() - 获取随机数

获取到了一个0~1之间的随机的小数,这个随机数最小是0,最大不可能是1,{ [0,1) }   左闭右开
	//在js调用的时候,也可能会先传入大的数,也有可能先传小的数,需要在函数中先进形处理
	function getRandom(a,b){
		// 先找到a和b之间的大数和小数
		var max = a
		var min = b
		// 先假设最大值为a,最小值为b
		if(b>a){
			// 接着进行判断 如果假设不成立,则交换赋值
			max = b
			min = a
		}
		return parseInt(Math.random()*( max - min)) + min
	}

	var n = getRandom(50,30)
	console.log(n) // 返回一个30到50之间的随机整数

2,Math.ceil(要取整的数字) - 向上取整

	向上取整的是只会入不会舍
	
	var num = 3.14
	console.log ( Math.ceil(num) )  //  4

3,Math.floor(要取整的数字)

	只会舍不会入

	var num = 3.999
	console.log( Math.floor(num) )   // 3

4,Math.round(要取整的数字)

	四舍五入
	
	var num = 3.14
	console.log(Math.round(num))	// 3

	var num = 3.999
	console.log(Math.round(num))	// 4 

5,Math.abs(插入数字) - 求绝对值

	不管是正数还是负数一定要得到正数

	var num = -5
	console.log( Math.abs(num) );	// 5

	var num = 5
	console.log( Math.abs(num) );	// 5

	var num = -5.123456			
	console.log( Math.abs(num) );  	// 5.123456

	var num = 5.456789
	console.log( Math.abs(num) );	// 5.456789

6.Math.pow(底数,幂数)

	23次方,2底数,3是幂
	
	var num = Math.pow(2,3)
	console.log(num)	//	8

7,Math.sqrt(插入一个数字)

	开根号
	var num = Math.sqrt(9)
	console.log(num)	// 3

8,Math.max(一串数字)

	var num = math.max(1,9,57,4,2,3,8)
	console.log(num)	//	57

9,Math.min(一串数字)

	var num	= math.min(1,9,57,4,2,3,8,'ASDF',[1,2,3])
	console.log(num)	// NaN

10.Math.sin(弧度,[不是角度]) - 正弦

正弦:直角三角形,如果一个角是30度,30度的角对面的那个边是斜边的一半
30度的正弦,是1/2   -   角度对应的边跟斜边的比例
弧度跟角度进行换算	-	1弧度指的是一个半径的长度		
[当 角度 为 30度 时]
弧度  = 角度 * 2π  / 360 = 60π / 360 = π  / 6 
var res = Math.sin(30 * 2 * Math.PI / 360)
console.log(res) //	0.5

11,Math.cos(角度对应的弧度) - 余弦

余弦:角度相邻的直角边跟斜边的比例

var res = Math.cos(60 * 2 * Math.PI / 360)
console.log(res)	// 0.5

二,进制间转换

(一),10进制数字.toString(目标进制)

	10进制转其他进制的方法
	返回值:返回转成目标进制后的数字,且一字符串的形式显示
	var num = 5
	// 转成2进制 
	var res = num.String(2)
	console.log(res)	// 101

	var num = 12
	// 转成16进制
	var res = num.toString(16)
	console.log(res)	// c
	// 16进制 [个位数 每逢16进1]【1,2,3,4,5,6,7,8,9,a,b,c,d,e,f】

(二),parseInt(其他进制数字,将这个数字当成多少进制看)

	其他进制转成10进制
	一般第二个参数不填,默认第二个参数是10,将被转换的数据当成10进制看待了
	var num = '11'
	var res1 = parseInt(num, 2) // 2进制转10进制		//	3
	var res2 = parseInt(num, 8) // 8进制转成10进制		//	9
	var res3 = parseInt(num, 16) // 16进制转成10进制	// 	17
	console.log(res1)

三,Date

(一),创建日期对象

所有关于日期的操作,都需要使用日期对象来操作
	利用系统提供的构造函数:Date来创建
	var date = new Date()
	// 这个对象是专门用于操作时间日期的,在输出的时候,默认会以字符串的形式显示
	console.log(date);

	new Date()	获取到的是当前时间的日期对象 -	是客户端时间 - 是自己计算机上的时间,如果我们修改自己计算机的时间后,获取到的时间也会发生变化

(二),获取具体的时间

	// 从时间日期对象中获取具体的时间
	var date = new Date()

	// 获取年份 - 对象.getFullYear()
	var year = date.getFullYear()

	// 获取月份 - 对象.getMonth()
		// 在对象中,使用0-11来描述1~12月
	var month = date.getMonth()+1
	// 因为获取到的月份会比实际月份小1,使用通常会用 +1 表示

	// 获取日 - 对象.getDate()
	var d = date.getDate() 
	// 由于上面已经用date 作为变量名了 ,所有这里不能用date作为变量名来获取日

	// 获取星期 - 对象.getDay()
	var day = date.getDay()

	// 获取时 - 对象.getHours()
	var hour = date.getHour()

	// 获取分 - 对象.getMiuntes()
	var minute = date.getMinutes()

	// 获取秒 - 对象.getSeconds()
	var second = date.getSeconds()

	// 获取毫秒 - 对象.getMilliseconds - 1s === 1000ms
	var mill = date.getMilliseconds()

获取时间戳

	获取时间戳:比如从197011800秒到现在所走过的时间用毫秒数来描述之间时间差
	语法:对象.getTime()
	var time = date.getTime()
	console.log(time)

	运用途径:在很多情况下,我们需要对时间进行计算的,运用减法运算
	比如: 2022101- 2022318日
	就相当于 国庆的时间戳 - 当前的时间戳 = 毫秒数 【接着可以转化为天数表现出来】

(三),设置时间

  • 通过时间日期对象设置时间
  • var date = new Date() 获取当前时间对象
  • 设置时间 == 可以看做 将这个时间的对象变成另外一个时间的对象
  • 设置年份:对象.setFullYear(目标年份)
    • date.setFullYear(2023)
  • 设置月份:对象.setMonth(目标月份) – 0 ~ 11来描述1 ~ 12个月
    • date.setMonth(4)
    • 参数是0~11 ;参数会比实际月份少1
  • 设置日:对象.setDate(目标日)
    • date.setDate(25)
  • 设置时:对象.setHours(目标时)
    • date.setHours(15)
  • 设置分:对象.setMiuntes(目标分)
    • date.setMinutes(50)
  • 设置秒:对象.setSeconds(目标秒)
    • date.setSeconds(59)
  • 设置毫秒:对象.setMilliseconds(目标毫秒数)
    • date.setMilliseconds(500)
  • 通过设置具体的时间,时间日期对象就发生了变化
  • 通过设置后的对象来获取具体的时间
  • console.log( date.getMilliseconds()) // 500
  • 注意: 在设置时间中,没有设置星期机,因为星期几是根据年月日生成的,是不能被设置的
	获取时间戳
	1.时间日期对象.getTime()

	2.new前面放 + 
	var date = += new Date()
	console.log(date);+ 后面的字符转成数字
	var a = '15'
	console.log(a)
	console.log( +a )

	3.利用构造函数Date : Date.parse('年-月-日 时:分:秒')
	var guoqing = Date.parse('2022-10-1')
	console.log(guoqing)

(四),格式化输出时间

// 正常情况下,我们在输出时间日期对象的时候,看起来特别不好看
 	console.log( new Date() )

	var date = new Date()
	// 转成更加方便看的时间显示 - 格式化输出时间
	
	// 格式化整个年月日时分秒
	var str = date.toLocaleString()
	console.log(str)  // 输出当前的年月日时分秒

	// 格式化年月日
	var str1 = date.toLocaleDateString()
	console.log(str1)	// 输出当前的年月日

	// 格式化时分秒
	var str2 = date.toLocaleTimeString()
	console.log(str2)	// 输出当前的时分秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值