1.数学对象
特点不需要定义对象实例,直接通过 Math.方法名 直接调用。
Math.floor(小数) 向下取整 取出小于该数的最大整数
Math.floor(4.3);// 4
Math.floor(-4.3);// -5
console.log(Math.floor(4.9));//4 与四舍五入无关
Math.ceil(小数) // 向上取整 取出大于该数的最小整数
console.log(Math.ceil(4.3)); //5
console.log(Math.ceil(-4.3)); // -4
Math.round(小数) 四舍五入
console.log(Math.round(4.1));
Math.sqrt(number) 开平方根
Math.pow(m,n) 返回m的n次方
Math.min(1,-2,3,4) 取多个数最小值
Math.abs(number) 返回绝对值
Math.random() 返回0~1之间的随机数
2.获取任意区间值的随机函数
for(var i=0; i<50; i++){
//console.log(parseInt(Math.random()*100)%6+3);//[1,6] [2,8]
//console.log(Math.round(Math.random() * 6) + 2); //[0,5] [2,8]==[min,max]
console.log(rand(100,500));
}
function rand(min,max){
return Math.round(Math.random() * (max-min)) + min;
}
通过JS文件进行封装,然后直接调用
案例:
获取六位十六进制颜色,制作彩虹条
var color = "#";
var str = "0123456789abcdef";
//无论几个都是数组
var list = document.getElementsByTagName("li");
for(var i=0; i<list.length; i++){
color = "#";
for(var j=0; j<6; j++){
color += str.charAt(rand(0,15));
}
list[i].style.backgroundColor = color;
}
3.日期对象
定义:
var d = new Date();
获取时间的方法:
getFullYear() //返回年份
getMonth() //返回月份值 ,从0开始 0~11
getDate() //返回日期
getDay() //返回星期几 0~6 星期日为0
getHours() //返回小时数
getMinutes() //返回分钟数
getSeconds() //返回秒数
封装时间字符串:
function dateToString(d){
var a = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六",];
var _y = d.getFullYear();
var _m = d.getMonth()+1;
var _d = d.getDate();
var _h = toTwo(d.getHours());
var _mm = toTwo(d.getMinutes());
var _s = toTwo(d.getSeconds());
var _w = d.getDay();
var str = _y + "年" + _m + "月" + _d + "日";
str += _h + "时" + _mm + "分" + _s + "秒" + " " + a[d.getDay()];
return str;
}
function toTwo(v){
return v<10?"0"+v:v;
}
document.write(dateToString(new Date()));
console.log(d.toLocaleString()); //根据本地时间格式,把 Date 对象的日期部分转换为字符串。
字符串改为时间:
方法1:
var str = "2001-8-6,18:23:56";
var bir = new Date(str);
document.write(bir.getMinutes());
方法2:
Date.parse(日期字符串) //返回自1970年1月1日起至参数日期的毫秒数
var t = new Date(Date.parse(str));
document.write(t.getHours());
4.设置时间
setDate() //改变Date对象的日期
setHours() //改变小时数
setMinutes() //改变分钟数
setMonth() //改变月份,从0开始
setSeconds() //改变秒数
setTime() //改变完整的时间,毫秒数
setYear() //改变年份
var d = new Date();
d.setHours(5); //修改hours为5
document.write(d);
var d = new Date();
d.setDate(d.getDate()+10);//设置10天后的时间,如果时间超出,日期会自动变为下个月的时间
document.write(d);
5.日期差
求两个日期的差,就是计算两个日期之间差多少天。
1,先取得两个日期的时间戳
2,计算时间戳之间的差值
3,将时间戳之间的差值算成天
getTime() //返回完整的时间 ,毫秒数
var d1 = new Date();
var d2 = new Date("1988-6-26");
var x = d1.getTime() - d2.getTime();//毫秒
document.write(x/1000/60/60/24);
6.定时器
循环定时器:
setInterval(函数,执行的间隔/毫秒); //连续执行
- 三种用法:
1.
setInterval(function(){console.log(1);},1000);
function fun(){
console.log(1);
}
2.
setInterval(fun,1000);
3.
setInterval("fun()",1000); //不常用
在函数调用的时候,一般来说,"都有"(有双引号有括号),或者"都无"(无双引号无括号)
停止:clearInterval(定时器对象); //清除定时器
var i = 0;
function fun(){
console.log(i++);
if(i==5){
clearInterval(t);
}
}
t = setInterval(fun,1000);
- 延迟定时器:
setTimeout(回调函数,毫秒数) 设置在指定的毫秒数后执行一次回调函数,返回定时器编号
体现的是延迟完成一件事情。
var t = setTimeout(function(){
document.write("hello lao wang");
},5000);
clearTimeout(t); //清除定时器
7.动态时间
<p id="time">时间</p>
var p = document.getElementById("time");
setInterval(function(){
p.innerHTML = new Date();
},1000);