Date内置类
var date = new Date() 设置时间 如果无相当于当前加载时间
date.getFullYear () 2019 date.getMonth() 6 得到的要加1才是真实月份 date.getDate()这个是日 getDay()是获取周几 周日是 0 date.getHours getMinutes getSeconds 获取时分秒 都要加s getMilliseconds 毫秒
getTime()返回的是当前距离1970 1 1 00点 的毫秒数 如果括号里面写日期,格式 ‘2017/1/1’算的是写的日期距离1970 1 1的毫秒数
定时器
setTimeout(function(){ },2000) 延时做函数内的某事 但是只做1次
延时做某事 无限做 setInterval(function(){ },2000) 每隔2000ms执行一次
终止 setInterval类型的定时器 clearInteral
把定时器赋值给1个变量 然后再clearInteral(变量)
终止setTimeout类型定时 把定时器赋值给1个变量 然后再clearTimeout(变量)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
function setTime(){
var start = new Date()
var end = new Date('2019/7/27 19:27:00')
var space = end -start;
if(space<=0)
return false;
else
{
var hour = Math.floor(space/1000/60/60);
hour = hour >=10 ? hour:'0'+hour;
var minute = Math.floor((space-hour*60*60*1000)/1000/60);
minute = minute >=10 ? minute:'0'+minute;
var second = Math.floor((space-hour*60*60*1000-minute*60*1000)/1000)
second = second >=10 ? second:'0'+second;
return(hour+':'+minute+':'+second) ;
}
}
if(setTime()){document.body.innerHTML = setTime();}
else {document.body.innerHTML ='00:00:00'}
document.body.innerHTML = setTime();
var b = setInterval(function(){
if(setTime()){document.body.innerHTML = setTime();}
else {
document.body.innerHTML ='00:00:00';
clearInterval(b)
}
},1000);
</script>
</body>
</html>
学习数组方法1 作用 2 参数 3 返回值 4 执行后原数组的变化
push() 1 给数组追加元素 2 参数是追加的多个元素或数组 3 返回值是追加后的数组长度 4 执行后原数组改变
pop() 1 删除数组最后一位元素 2 无参数 3 返回值是被删除的元素 4 原数组改变
unshift() 1 在数组最前面增加多个元素 2 参数是加的1至多个元素 3 返回值是追加后的数组长度 4 数组改变
shift() 1 删除数组第 一位元素 2 无参数 3 返回值是被删除的元素 4 原数组改变
改变数组长度也可以删除后面的元素
slice() 1 截取数组中元素 第一个参数开始到第二个参数前一个元素2 参数:(第一个开始截取的元素,截取元素之前) 3 返回截取后的结果 是一个数组 4原数组不改变 相当于复制
splice(n,m,items) 1 截取字符串and 添加 删除元素 2 参数解释 n 开始索引 m 截取个数 items是添加的多个元素 如果没有items参数就是删除 有items 相当于替换 【删除元素的位置放上添加的元素】 3,返回值是删除后的数组 4 原数组改变
【m>0 替换 m = 0 添加 】
indexOf() 1 查找对应元素的下标 2 .参数 查询的对应的元素 3 返回对应下标 没有的话返回-1 4 数组不变
lastIndexOf() 1 相当于从后面找 2 .参数 查询的对应的元素 3 返回对应下标 没有的话返回-1 4 数组不变
indexOf lastIndexOf 不兼容ie6 7 8
join 1 转成字符串 2 参数不写默认逗号 写了分隔符就是写的参数
排序 sort()默认按ascii吗排 加参数按自己方式排 2 参数 :函数 3 返回值是排序后的结果 var arr=[1,2,'a','b'] arr.sort(function(a,b){ return a-b })
4 原数组改变
reverse () 数组翻转 而非排序 无参数 数组改变
数组遍历方法
ie 6 7 8均不兼容的方法
[函数参数不知道 通过在函数体内打印arguments来看]
forEach()1 遍历(循环)数组2 参数是函数 【函数有仨参数 item 元素每一项 index 元素的下标 arr 原数组】3 没有返回值【返回值是undefined】 4 数组不变
map() 同上 不同的是返回计算后的值
filter () 同上 作用是过滤数组 返回满足条件的组成新的数组 原数组韩式不变
every( ) 1 必须每一项都满足条件 如果都满足返回true 需要返回值是true 有一个不满足都是false 跟原数组没关系 参数也也同上 如 return item>3
some() 有一个满足条件就返回true 其余参照every()
reduce 参数也是function(prev,next,累do次数) 作用就是元素的累do(累加 累乘)
var arr = [1,23,4];
console.log(arr.reduce(function(a,b,c){
return a*b
}))
reduce可以加俩参数 一个function 一个prev 这个可以写数字 比如写个 1 那我首位累do的就是1 开始
concat ()1 合并数组 2 参数 是合并的元素或数组 返回 合并后的新数组 原数组不变
数组去重: