Math对象:
提供了一些数学算的API
强调:不需要创建,直接使用:全局对象Window,Math;
属性:Math.PI 可以得到圆周率:3.1415926...
API:
1、整取:3种
1.上整取:有小数就取下一个整数
Math.ceil(数字)
2、下整取:忽略小数取整值
Math.floor(数字)
3、四舍五入取整:
Math.round(数字)
以上三个操作都只能取整;
取整的方式:上面三个+*parseInt+num.toFixed(小数位数)
推荐使用:num.toFixed(小数位数):
优点:具有四舍五入,并且小数位数由自己设置;
缺点:返回得一个字符串,搭配上一个parseFloat;
乘方和开方:
乘方:result=Math.pow(底数,幂)
开方:result=Math.sqrt(数字) -> 只能开平方
最大值和最小值:
Math.max/min(数字1,数字2,数字3,...);
问题:不支持数组参数;
解决:
固定用法:Math.max/min.apply(Math,数组);
apply是ES5的东西,apply具有打散数据的功能。
绝对值:把负数变为整数;
Math.abs(负数)
随机数:
Math.random() ->在0-1之间取随机的很多位小数,有可能取到0,不可能取到1。
公式:Math.random()*(最大值-最小值+1)+最小值;
解析:随机到的小数*(最大值-最小值+1)
+最小值->因为随机到的小数可能是0,而0*任何数都为0,所以要在最后加一个最小值,
避免你最后需要的随机数不为0的时候随机到0
强调:只要页面中有随机功能,那么一定是使用到了随机数。
注意:其实Math还提供了三角函数;
date对象:
提供了操作时间的API;
1,创建:4种
1.*创建一个当前时间:
变量=new Date();
2.*创建了一个自定义时间:
变量=new Date("年份/月份/日期 小时:分钟:秒钟");
变量=new Date(年份,月份,日期,小时,分钟,秒钟); -> 缺点:月份是从0-11开始,需要输入修正-1;
3.复制一份日期:
为什么要复制:日期的所有API都是直接修改原来的日期对象,无法获得修改之前的日期;
所以在执行之前都要先复制,然后在操作复制后的日期;
var 变量=new Date(要复制的变量名);
2,操作:
1.两个日期对象之间可以相减,得到一个毫秒差,换算出你想要得到的任意一部分 《日期的本质就是保存了一个毫秒》
所以我们还可以用变量=new Date(毫秒数)来创建
2.API:
分量:时间的单位;
年月日星期:Fullyear Month Date Day
时分秒毫秒:Hours Minutes Seconds Milliseconds
每一个分量都可以设置getXXX/setXXXX的API,除了Day不能设置set
get:获取;
set:设置;
特殊:
1.取值范围:
年 - 当前的年分
月 - 0~11
日 - 1~31
星期 - 0~6 -> 0代表周日,外国认定周日是一周的开始
时 - 0~23
分/秒 -0~59
3,建议:如果你希望对某个分量做加减:
date.setXXXX(date.getXXX()+/-n);
例子:date.setFullyear(date.getFullyear(想获取的对象的变量名)+3); 年份+3年。
4,格式化日期对象 -> 字符串:
date.toLocaleString();
locale -> 本地 - 具有兼容性问题,在不同的浏览器显示出来的效果不一样;
日期可以用日期自己的API - 日期强在日期会自动进制
字符串也只可以用字符串自己的API
一旦格式化位字符串则不可用日期的API