一、周期任务和计时任务
1.setTimeout和setInterval:setTimeout可以让代码过段时间再运行,而setInterval可以让代码每隔一段时间运行一次。
setTimeout
是一个函数,它的第一个参数是过段时间要执行的函数,第二个参数是延迟时长,以毫秒为单位,例如,下边代码执行后会过三秒在控制台里输出‘你好‘
:
setTimeout(function callback()
{
console.log(‘你好‘);
},3000);
clearTimeout:清除延时任务;
var timerID=setTimeout(function(salutation,name)
{
console.log(salutation+‘,‘+name);
},3000,‘你好‘,‘春天‘);
clearTimeout(timerID);
使用 clearInterval 清除周期任务;
同步和异步。
同步:当某些代码被执行的时候,它都是从上往下一行一行的执行的。
异步:异步执行,就是某段代码它不会马上执行,而是在某个事件被触发的时候才执行它。
二、Date对象
var time=new Date();//没有参数
console.log(time);//获取当前时间
(1)getFullYear
:「Date 对象」的getFullYear
方法可以得到这个「Date 对象」所代表的时间的四位数年份,以数字的形式返回,这个方法没有参数。
result=time.getFullYear();
console.log(result);
(2)getMonth:「Date 对象」的getMonth
方法可以得到这个「Date 对象」所代表的时间的月份,以数字的形式返回取值范围是0~11
,这个方法没有参数。
(3)getDate:Date 对象」的getDate
方法可以得到这个「Date 对象」所代表的时间的在月中的一天,以数字的形式返回,取值范围是1~31
,这个方法没有参数。
(4)getHours:「Date 对象」的getHours
方法可以得到这个「Date 对象」的小时,以数字的形式返回,取值范围是0~23
,这个方法没有参数。
(5)getMinutes:「Date 对象」的getMinutes
方法可以得到这个「Date 对象」的分钟数,以数字的形式返回,取值范围是0~59
,这个方法没有参数。
(6)getSeconds
:「Date 对象」的getSeconds
方法可以得到这个「Date 对象」的秒数,以数字的形式返回,取值范围是0~59
,这个方法没有参数。
(7)Date.now:ate
的now
方法可以让我们获取从「1970-01-01 00:00:00」至今的毫秒数,以数字形式返回。
(8)Date.parse:Date
的parse
方法可以将各种计算机用来描述时间的格式统一转化为从「1970-01-01 00:00:00」至今的毫秒数,以数字形式返回。
三、Math对象
Math是一个对象。
我们可以通过Math.PI
访问到 π,通过math.E
访问到 e
的近似值。console.log(Math.PI); // 3.141592653589793
console.log(Math.E); // 2.718281828459045
常用方法:
Math.max:求最大值。
Math.min:求最小值。
Math
对象中提供了三个方法可以让我们以不同的方式对数字取整,他们分别是:
Math.round
四舍五入Math.floor
向下取整Math.ceil
向上取整
这三个方法都接受一个数字作为参数,返回取整后的整数。
随机数
Math.random
方法可以得到一个在区间 [0,1]
上的随机数,这个方法没有参数。
console.log(Math.random()); // 0.7513179241936767
console.log(Math.random()); // 0.14205328961588592
console.log(Math.random()); // 0.968618524049834
既然是随机数,那么每次调用的结果会都不一样。
Math.random
产生的随机数,并不是数学意义上的随机,它是通过算法生成的,不同浏览器实现的随机算法不一样。
有的时候,我们并不需要 [0,1]
区间上的随机数,想要 [0,100]
区间上的,此时我们就可以给通过给Math.random
的结果乘以100
来得到我们想要的结果。
console.log(Math.random() * 100); // 84.40268700798883
console.log(Math.random() * 100); // 82.56584363637411
console.log(Math.random() * 100); // 37.03991930486852
嫌小数恶心,希望得到的是区间 [0,100]
上的整数?此时就可以使用我们刚学的Math.round
来进行取整。
console.log(Math.round(Math.random() * 100)); // 83
console.log(Math.round(Math.random() * 100)); // 51
console.log(Math.round(Math.random() * 100)); // 92
组合使用Math.random
和Math.round
可以生成各种区间里的随机数。
幂运算
var a = 10;
console.log(Math.pow(2, 21)); // 2097152
console.log(Math.pow(a, 9)); // 1000000000