第三周day001

78 阅读3分钟

day001

1、Math对象

属性:Math有一些属性,涉及到科学计数法,但是几乎用不到,Math.PI

API:

1、上取整:超过一点点,就取下一个整数

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)
2、乘方和开方
*乘方:Math.pow(底数,幂); -> 更简化的方法:底数**幂
开方:Math.sqrt(num); -> 仅仅只能开平方
3、*最大值和最小值:
var max/min=Math.max/min(a,b,c,d,e,f,g,....);//自动在传入的数字中找到最大值或最小值
问题:本身不支持数组参数
解决:固定用法:Math.max/min.apply(Math,arr);//apply具有打散数组的功能
4、绝对值:
Math.abs(-1);//1
5、***随机数:Math.random():在0~1之间取一个随机的小数
公式:parseInt(Math.random()*(max-min+1)+min)
Date对象:日期对象,提供了操作日期和时间的API:
创建:41、*创建一个当前日期
	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);
使用:

1、两个日期对象之间,可以相减,得到一个毫秒差(大-小) 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
	Minutes、Seconds:0~59
	Day - 0~60代表星期天,外国人的眼里星期天才是一个星期的第一天
2、任何分量都有set操作,唯独Day没有set
3、如果希望对某个分量进行加减操作的话
date.setXXXX(date.getXXXX()+/-n)
4、格式化日期为本地字符串:
date.toLocaleString() - 垃圾:具有兼容性问题,我们一般会选择自己封装一个format函数来进行格式化
3、***定时器:
     1、*周期性定时器:每过一段时间会执行一次,先等后做,会反复执行,需要自己写停止才能停止
开启:timer=setInterval(callback,间隔毫秒数);
停止:clearInterval(timer);

     2、一次性定时器:等待一段时间,只会做一次就结束了
开启:timer=setTimeout(callback,间隔毫秒数);
停止:clearTimeout(timer);

同步技术:代码必须一行一行的执行,前面的没做完,后面的就只能等着,目前为止几乎所有的代码,都属于同步技术
异步技术:无论我们这一块代码多么好事,也不会卡住后续代码,目前这个技术只有定时器,最牛逼的异步技术(AJAX)

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