基础篇之我是Math,Date

127 阅读4分钟

1、Math对象:

专门提供了数学计算的API
	强调:Math不需要创建,直接使用
        属性:Math有一些属性

API:

 取整:31、上取整:超过一点点,就取下一个整数
var num=Math.ceil(num);//小数点位数不能超过15位,否则此方法会失效,只能取整
2、下取整:无论超过多少,都会省略掉小数部分
var num=Math.floor(num);
3、四舍五入取整:
	var num=Math.round(num);//只看第一位小数

以前我们取证的方式:以上三个+*parseInt(str)去掉单位+*num.toFixed(d);
*num.toFixed(d):优点:
	1、传入自定义保留小数位数,并且也带有四舍五入的操作
	2、解决浏览器带来的舍入误差:计算机很笨,但是它的记忆力好,而且速度快:笨在何处?比如:2-1.6 === 0.399999999999 
缺点:结果是一个字符串,建议搭配上parseFloat使用

鄙视题:

不允许使用toFixed的情况下,自己封装一个函数,由用户传入数字以及保留的小数位数,进行四舍五入,返回一个数字
				function toFixed(num,d){
					num*=(10**d);
					num=Math.round(num);
					num/=(10**d);
					return num;
				}
				var result=toFixed(Math.PI,4);
				console.log(result)

乘方和开方

*乘方:Math.pow(底数,幂); -> 更简化的方法:底数**幂
开方:Math.sqrt(num); -> 仅仅只能开平方

*最大值和最小值:

var max/min=Math.max/min(a,b,c,d,e,f,g,....);//自动在你传入的数字中找到最大值或最小值
问题:本身不支持数组参数
解决:固定用法:Math.max/min.apply(Math,arr);//apply具有打散数组的功能

绝对值:把负数变为整数

Math.abs(-1);//1

***随机数:Math.random():在0~1之间取一个随机的小数

搭配上parseInt,只能取到0,不可能取到1,意味着取不到最大值
公式:parseInt(Math.random()*(max-min+1)+min

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,dd,hh,mm,ss);//修改月份,从0~11月,0代表是1月
4、*复制一个日期:
	为什么:日期的所有的API都是直接修改原日期的,无法获得修改之前的日期
	所以,在执行API之前先进行复制,然后再操作复制后的日期
	var end=new Date(start);

使用:2类

1、两个日期对象之间,可以相减,得到一个毫秒差(大-小),换算出自己想要的任何一部分 - 日期的本质其实就是保存了一个毫秒数 - 做倒计时的关键点
创建日期的最后一种方式,绝对没人使用:var date=new Date(毫秒数);//计算机元年:1970年1月1日 8点整

2、API:

分量:时间的单位
年月日星期:FullYear Month Date Day
时分秒毫秒:Hours Minutes Seconds Milliseconds
每一个分量都有一对儿getXXXX/setXXXX
	其中getXXX负责获取一个分量的值
	其中setXXX复制设置一个分量的值
	特殊:
	1、取值范围:
		FullYear - 当前年份的数字
		Month - 0~11
		Date - 1~31
		Hours - 0~23
		MinutesSeconds0~59
		Day - 0~60代表星期天,外国人的眼里星期天才是一个星期的第一天 

2、任何人都有set操作,唯独Day没有set

3、如果希望对某个分量进行加减操作的话

date.setXXXX(date.getXXXX()+/-n)

4、格式化日期为本地字符串:

date.toLocaleString() - 垃圾:具有兼容性问题,我们一般会选择自己封装一个format函数来进行格式化
用了此方法会失去一些东西:日期的自动进制、日期的所有的API
但是你也会得到一些东西:字符串的API,你可以解锁更多的操作(替换、切割、截取...)

扩展:

如何使用JS创建页面DOM元素:
	//1、创建空标签
		var elem=document.createElement("标签名");
	//2、为这个空标签,设置必要的属性或事件
		elem.属性名="属性值";
		elem.on事件名=function(){操作}
	//3、将我们的元素放上到DOM树
		父元素.appendChild(elem);