1、Math对象:
专门提供了数学计算的API
强调:Math不需要创建,直接使用
属性:Math有一些属性
API:
取整:3种
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)
乘方和开方
*乘方: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
Minutes、Seconds:0~59
Day - 0~6;0代表星期天,外国人的眼里星期天才是一个星期的第一天
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);