02js6Math

126 阅读3分钟

1、Math对象:提供了一些数学计算的API

强调:不需要创建,直接使用:全局对象window、Math

属性:Math.PI 得到3.1415926

API:
   1、取整:31、上取整:超过一点点,就取下一个整数
		var result=Math.ceil(num);

	2、下取整:哪怕超过的再多,也会省略掉小数部分
		var result=Math.floor(num);

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

	//以上三个操作都只能取整:
	//取整的方式:以上三个 + *parseInt + *num.toFixed(0)
	//个人更推荐:num.toFixed(d):优点:具有四舍五入,并且小数位数可以自己设置
				 缺点:返回是一个字符串,搭配上一个parseFloat

	//*笔试题:要求不允许使用toFixed,自己封装出toFixed的操作

   2、乘方和开方
                *乘方:var result=Math.pow(底数,幂)
	开方:var result=Math.sqrt(num);//只能开平方

   3、最大值和最小值:
	var max/min=Math.max/min(a,b,c,d,....);
	问题:本身不支持数组参数的
	解决:固定用法:var max/min=Math.max/min.apply(Math,arr);
		apply是ES5才会学习的东西,apply具有打散数组的功能

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

   5、***随机数:Math.random(): 在0-1之间取随机的小数,但是有可能取到0,不可能取到1
			   有可能取到最小数,但是绝对不可能取到最大数
	公式:parseInt(Math.random()*(max-min+1)+min);
	强调:只要以后网页中某一块有一个随机的功能,那么一定需要用到随机数

   	注意:其实Math还提供了三角函数

2、Date对象:提供了操作日期的API

1、创建:41*创建一个当前时间:
	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 代表 14、复制一份日期:
	为什么:日期的所有的API都是直接修改原日期对象的,无法获得修改之前的日期
	所以,在执行API之前都要先进行复制,然后在操作复制后的日期
	var end=new Date(start);

2、操作:
     1、两个日期对象之间可以相减,得到一个毫秒差,换算出你想要的任何一部分 - 日期的本质底层保存的就是一个毫秒
		其实创建还有第五种方式:var date=new Date(毫秒)
     2、API:
	分量:时间的单位
	年月日星期:FullYear Month Date Day
	时分秒毫秒:Hours Minutes Seconds Milliseconds
	每一个分量都有一对儿getXXX/setXXX的API
	   get用于获取
	   set用于设置
	特殊:
	   1、取值范围:
		年 - 当前年份的数字
		月 - 0~11- 1~31
		星期 - 0~6:外国人觉得星期天是一周的第一天
		小时 - 0~23
		分秒 - 0~59

	  2、唯独星期不允许设置set

    3、建议如果你希望对某个分量做加减
	date.setXXX(date.getXXX()+/-n);
	date.setFullYear(date.getFullYear()+3);//对日期+34、格式化日期对象->字符串:
	date.toLocaleString();//locale本地 - 具有兼容性问题,在不同的浏览器显示出来的效果是不一样,一般来说我们都要自定义格式化方法

	日期可以用日期自己的API - 日期屌在日期会自动进制
	字符串也只可以用字符串自己的API
	一旦格式化为字符串则不可用日期的API

作业: 1、笔试题:自己封装一个toFixed 2、机选双色球: 红球:1-33 6个 蓝球:1-16 1个 3、让用户输入,自己是什么时候入职的,3年后合同会到期,计算出合同到期时间 提前1个月人力会让此员工续签,如果续签时间是周末,提前到周五,计算出合同续签时间 续签的前一周要进行提醒,计算出提醒时间 4、自定义格式化函数 5、继续完成QQ注册

3、Number对象

4、Boolean对象