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