math对象日期对象

本文详细介绍了JavaScript中的Math对象,包括取整方法如Math.ceil、Math.floor和Math.round,以及随机数生成和乘方、开方等数学运算。此外,还探讨了Date对象的创建和使用,包括获取和设置日期时间的各种方法,以及如何进行日期操作和格式化。文章还提供了一个自定义四舍五入保留小数位数的函数示例。
摘要由CSDN通过智能技术生成

1、Math对象:专门提供了数学计算的API的对象
强调:不能创建,由浏览器自动创建,我们直接使用

属性:Math.PI - js中有π不需要我们创建

方法:
1、取整:3种
1、上取整:只要超过,就取下一个整数
Math.ceil(num);//小数位数不允许超过15位

   2、下取整:不管超过多少,就会省略小数部分
	Math.floor(num);

   3、四舍五入取整
	Math.round(num);

   问题:以上3个方法只能取整
         除了以上3个我们还学过:parseInt/m>>>0/m^0/num.toFixed(0);
   *parseFloat(num.toFixed(d));//具有四舍五入的功能,而且可以自定义小数位数
	 缺点:1、返回的是一个字符串,往往需要搭配parseFloat()
	       2、传入的小数位数只能是0~100,超过就会报错
   *parseInt:可以去掉单位

   笔试题:做出一个自定义的四舍五入保留小数位数的方法,可以自定义保留几位小数,并且最后返回的结果要是一个数字?
		function round(num,d){
			num*=Math.pow(10,d);//123456.7
			num=Math.round(num);//123457
			num/=Math.pow(10,d);
			return num;
		}
		var result=round(123.4567,1);
		console.log(result);
	
2、乘方和开方
   *乘方:Math.pow(底数,幂);//代替连乘
   开方:Math.sqrt(num);//只能开平方

3、最大值和最小值
   var max/min=Math.max/min(a,b,c,d....);
   问题:只能单个传入参数,不支持数组参数
  *解决:Math.max/min.apply(Math,arr);
	 1、其实apply具有打散数组的功能
	 2、apply是借用

4、绝对值:把负数转为正数
   Math.abs(num);

5、***随机数:Math.random(),在0~1之间取随机小数,可能取到0,但是不会取到1:意味着不可能取到最大值
	随机整数公式:parseInt(Math.random()*(max-min+1)+min);
	何时使用:只要网页的效果是随机的一定是用了随机数

6、Math还提供了三角函数

2、Date对象:封装一个时间并且提供了对时间进行操作的API的对象
何时使用:只要是操作日期相关的
如何创建:4种
1、*创建一个日期对象,获得客户端的当前时间
var now=new Date();

2、*创建一个日期对象,获得自定义的时间
	var birth=new Date("yyyy/MM/dd hh:mm:ss");

3、创建一个日期对象,获得自定义的时间
	var birth=new Date(yyyy,MM-1,dd,hh,mm,ss);
	//特殊:月份,在计算机中从0开始的,0代表1月

4、*复制一个日期对象:
	为什么:日期对象的所有的API都是直接修改原日期对象的
		无法获得修改之前的日期
	何时复制:只要想使用日期对象的API操作日期对象,记得都要先复制一份
		  在执行想要的操作
	var endDate=new Date(startDate);
	特殊:其实startDate可以直接写一个数字,其实日期对象保存的是从1970年1月1日至今的毫秒数
	      日期的底层其实就是一个毫秒数

操作:
*1、两个日期之间可以做相减的操作,毫秒差,换算出来你想要的任何东西
日期的底层其实就是一个毫秒数

*2、对某个日期的*分量*进行操作
	分量:年月日星期:FullYear Month Date Day
	      时分秒毫秒:Hours Minutes Seconds Milliseconds
	1、每个分量都有一对儿getXXX/setXXX
		其中getXXX负责获取一个分量的值
		其中setXXX负责设置一个分量的值
		特殊:Day,没有set
	2、取值范围:
		FullYear:直接写当前的年份
		Month:0~11
		Date:1~31
		Day:0 1 2 3 4 5 6
		     0是星期天
		Hours:0~23
		Minutes/seconds:0~59

	3、可以对某个分量进行加减操作
		date.setXXX(date.getXXX()+/-n)

3、格式化日期:但是是垃圾方法
	date.toLocaleString();//具有兼容性问题:老IE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值