<script type="text/javascript"> var arr = new Array(6) arr[0] = "00" arr[1] = "11" arr[2] = "22" arr[3] = "33" arr[4] = "44" arr[5] = "55" document.write(arr + "<br />") //arr.splice(2,3,"44") //删除 22(索引 -2) 和 33(索引 -3) //arr.splice(2,3) //删除 22(索引 -2) 和 33(索引 -3)和 44(索引 -4) //arr.splice(2,3,44,66) //删除 22(索引 -2) 和 33(索引 -3)和 44(索引 -4) 增加 44 和 66 //arr.splice(0,1); //从索引0开始 删除1个 arr.splice(0,2); //从索引0开始 删除2个 document.write(arr) </script>
<script type="text/javascript">
var thread = function () {
var nowTime = 0, //线程已经执行了多久
maxTime = 15;//线程最多执行多久
var threadArr = [];//数组模拟线程队列
this.addThread = function (fn) {
threadArr.push(fn)
}
this.start = function () { //启动
doingThread(); //执行doingThread函数
}
var doingThread = function () {
if (threadArr.length > 0) {
if (nowTime < maxTime) {
let now = new Date().getTime(); //时间戳 毫秒级
var method = threadArr[0]; //获得第一个函数;
method(); //执行这个函数
threadArr.splice(0, 1); //数组函数 删除第一个元素
let nowNew = (new Date().getTime() - now); //获得运行时间
nowTime += nowNew; //累加运行时间
doingThread();
} else {//每执行完线程后睡1ms
nowTime = 0;
setTimeout(doingThread, 1);
}
} else {//先睡着等待线程队列
setTimeout(doingThread, 100); //在指定的毫秒数后调用函数; 类似于递归函数,循环执行doingThread函数
}
}
}
var fn = function (num) {
console.log(num)
}
var thread = new thread();
thread.start();
for (let i = 0; i < 2; i++) {
thread.addThread(function () { fn(i);sleep(3000); }); //传递匿名函数到数组
}
function sleep(delay) { //延时函数
var start = (new Date()).getTime();
while ((new Date()).getTime() - start < delay) {
continue;
}
}
</script>
https://www.cnblogs.com/charleswone/p/10228699.html
https://segmentfault.com/a/1190000008723632
setTimeout("test()","2000"); //2000毫秒后执行test()函数,只执行一次。 setInterval("test()","2000"); //每隔2000毫秒执行一次test()函数,执行无数次。 var interval = window.setInterval("test()","2000"); window.clearInterval(interval); //停止执行setInterval循环。 当我们想让test()函数每隔2000毫秒执行一次,执行10000毫秒后停止执行时,可以用两者三者结合使用来实现。 var interval2 = window.setInterval("openit2()",2000); setTimeout(function() {window.clearInterval(interval2);},10000); 带参方法执行延迟 setTimeout(function(){return executeQueryTask(data);},"10000");
https://www.cnblogs.com/tv151579/archive/2013/01/06/2848320.html