date日期对象:js内置对象,使用构造函数创建;
1、var date = new Date();//创建对象;[表示的是这一刻的时间];记录时刻,测试:date.getSeconds(); 始终都不变; ->其也可获取已知时间的xx:new Date(2020,3,15).getDate();
2、date对象可调用系列的get;/set;方法
(1).应用场景:set系列方法: "倒计时秒杀"/"制定闹钟",等;[getUTCDay();//世界时,开发中用到很少]
(2).date.getHours();//获取值; date.setMinutes(17);//设置分钟数; date.getDate();//获取对象中月的某一天 (1~31); date.setDate();//设置对象中月的某一天 (1~31); date.getDay();//获取对象中周的某一天(0~6); date.setDay();//设置
3、时间戳:date.getTime();
[该方法表示1970年01月01日至今的毫秒数,(纪元时间:1970年01月01日 00:00:00:00;是所有时间评定的标准);其被称为“时间戳”,每一刻的时间都不同,它获得的是此刻的时间]
应用场景很广泛:例如可以获得程序执行时间来优化代码(控制台目前也有此功能计算程序运行时间)
补充:date.setTime();//设置毫秒数,一般有特殊需求,配合getTime();一起使用,单独使用由于设置的是毫秒数,场景不多;
4、定时器:window.setInterval();//定时循环器;
(1).setInterval(function(){console.log("a")},time);//time只能识别一次,确定后便一直都是该值,后续更改没有用;
(2).setInterval(); 该定时器不准确(底层原因涉及到js执行队列);
(3).clearInterval(); 清除定时,参数是setInterval的返回值,每个setInterval执行后都会返回一个唯一的标识,多个setInterval执行后的标识依次排列;
(4).setInterval( "console.log('a')", 1000);//其可以把字符串(或者js简单表达式)当作代码执行,实际开发中没人这么写;
5、定时器:window.setTimeout();
setTimeout( function(){} ,time); //time后才执行函数,time只能识别一次,确定后便一直都是该值,后续更改没有用;clearTimeout(timer);清除定时器,也有很nice的应用场景(视频播放中的广告);
总结:1.window.setInterval(); window.setTimeout(); 两个方法以及清除定时器的方法都是全局对象window的方法,window可省略; 函数内部this指向window; 2. setInterval(); 当函数中的函数体过于繁杂后,可以将其提取出来,写函数名即可;
例:实现计时器功能,到三分钟停止;
2、实现钟表功能: