1、Math对象:专门提供了数学计算的API 强调:Math不需要创建,可以直接使用的
属性:Math.PI - 其实我们程序员根本不用自己创建那个3.1415926,在js中自带此操作
API:
1、取整:3种
1、上取整:超过一点点,就会取下一个整数
var num=Math.ceil(num);
特殊:num小数位数不能超过15位,一旦超过,上取整失效,直接取整数
2、下取整:无论超过多少,都会省略掉小数部分
var num=Math.floor(num);
3、四舍五入取整:
var num=Math.round(num);//只看小数的第一位
以上三个API都是垃圾:都是在取整,只能取整
取整的方式:以上三个、*parseInt、*num.toFixed(d);//d代表的是保留的小数位数,0其实也可以取整,而且此方法也带有四舍五入,
唯一的缺点就是结果是一个字符串,建议搭配上一个parseFloat();
//鄙视题:不允许使用toFixed的情况下,自己封装一个函数,实现toFixed的操作
function round(num,d){
num*=Math.pow(10,d);
num=Math.round(num);
num/=Math.pow(10,d);
return num;
}
var result=round(Math.PI,4)
2、*乘方:解决你的连乘操作:Math.pow(底数,幂);
开方:只能开平方:Math.sqrt(num);
3、*最大值和最小值:var max/min=Math.max/min(num1,num2,num3,num4,....);
问题:本身不支持数组参数
解决:固定用法:var max/min=Math.max/min.apply(Math,arr);
apply是ES5提供的新操作,其中一个作用就是可以将数组悄悄的打散
4、绝对值:将负数转为正数
Math.abs(负数);
5、***随机数的原理:Math.random() 就已经得到随机数了,在0~1之间取出一个随即小数,
搭配上parseInt过后,只能取到0,但是绝对不能取到1,意味着能取到最小值,但是取不到最大值
所以衍生出了我们的公式
随机整数公式:parseInt(Math.random()*(max-min+1)+min);
2、Date:日期对象,提供了对时间进行操作的API 1、创建:4种 1、*获取当前时间: 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~11,0代表1月
4、*复制日期:
为什么:日期的所有的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;
其中getXXX负责获取某一个分量的值
其中setXXX负责设置某一个分量的值
*特殊:
1、取值范围:
FullYear - 当前年份的数字
Month - 0~11
Date - 1~31
Day - 0~6,0代表星期天,在外国人的眼里,星期天是一个星期的第一天
Hours - 0~23
Minutes、Seconds:0~59
2、日期对象在控制台长得很像字符串,但是不是字符串,在设置时如果超过了取值范围,他会自动进制
3、Day是不允许设置的,星期是一天一天推算过来的,并不是设置的
4、如果希望对某个分量进行加减操作
date.setXXX(date.getXXX()+/-n)
5、格式化日期为【本地】【字符串】:
date.toLocaleString(); - 垃圾:具有兼容性问题,解决:自定义format函数格式化
用了此方法会失去一些东西:日期对象的自动进制、日期对象的API - 因为转为了一个字符串了,但是你得到了字符串的API
作业:
1、把每一个新知识点都尝试一下(尤其是:加了星号的部分)
2、随机选双色球:- 数据渲染
红球:133 取出6个
蓝球:116 取出1个
绝对不能出现重复的
一切的排序功能,底层都是数组
一切的随机功能,底层一定用到了随机数
3、让用户输入自己的入职时间,计算出3年后的合同到期时间,并且合同到期前一个月进行续签,计算出续签时间,人事在续签前一周需要进行提醒,计算出提醒时间
如果续签时间是周末,那就提前到周五,最后格式化日期
4、倒计时:距离放学还有多久 - 距离下周一放学还有多久几天几个小时几分几秒
5、继续完成QQ注册