setInterval(function(0{},time)
<script>
var timer = setInterval(()=>{
console.log("a")
},1000)
//每隔一千毫秒执行一次函数
//timer是函数返回值 是唯一的 用来清除定时器 如果不需要可以不写
console.log('返回值timer:'+timer)
</script>
返回值是唯一的 用于clearInterval函数使用
var time = 1000;
setInterval(()=>{
console.log("a")
},time) //这里time不会改变为2000
time = 2000
<script>
var time = 1000
var timer = setInterval(() => {
console.log("a")
}, time)
time = 2000
</script>
time只会读取一次 这里time不会变成2000ms
测试
<script>
var firstTime = new Date()
setInterval(()=>{
var lastTime= new Date().getTime();
console.log(lastTime-firstTime)
firstTime=lastTime;
},1000)
</script>
理由:
clearInterval(timer)
timer值由setInterval返回 是唯一的
var time = 1000
var i = 0
var timer = setInterval(() => {
console.log(i++)
if(i>10){
clearInterval(timer)
}
}, 10)
setTimeout(function(){},time)
setTimeout(()=>{
console.log('a')
},1000)
只会执行一次
var timer = setTimeout(()=>{
console.log('a')
},1000)
var timer1 = setTimeout(()=>{
console.log('b')
},1000)
console.log(timer,timer1)
有唯一返回值
clearTimeout(timer)
var timer = setTimeout(()=>{
console.log('a')
},1000)
var timer1 = setTimeout(()=>{
console.log('b')
},1000)
clearTimeout(timer1)
四个方法全是window上的方法,内部函数this指向window
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
input {
border: 1px solid rgba(0, 0, 0, 0.8);
text-align: right;
font-size: 20px;
font-weight: bold;
}
style>
head>
<body>
minutes: <input type="text" value="0">
seconds: <input type="text" value="0">
body>
<script>
var minutesNode= document.getElementsByTagName("input")[0]
var secondsNode= document.getElementsByTagName("input")[1]
var minutes=0,
seconds=0;
var timer= setInterval(()=>{
seconds++;
if(seconds==60){
seconds=0
minutes++
}
secondsNode.value=seconds;
minutesNode.value=minutes;
if(minutes==3){
clearInterval(timer) //当达到3分钟时,停止计时
}
},10)
script>
html>