以下代码的工作原理:let start = new Date().getTime();while(newDate().getTime() - start < 5000);



我无法解释此代码片段的功能。请给任何人示范。提前感谢。。。。由于新的Date从一开始就在减,所以它似乎在减,结果是0,它小于500……那么while循环将如何工作

let start = new Date().getTime(); while(new Date().getTime() - start < 5000);

代码片段意味着在5秒钟后继续运行下一个命令。new Date((.getTime((返回当前时间的毫秒数,并且while语句在从开始时间起经过5秒后将始终为true。

let start = new Date().getTime();
while(new Date().getTime() - start < 5000);
// After 5 seconds, next commands will be executed.
...

说明

使用当前日期和时间创建新的日期对象:

const startDate = new Date();

获取自1970/01/01:以来的毫秒数

const startTime = startDate.getTime();

因此,new Date().getTime()返回如下内容:1605598723149。

在while循环中,我们得到当前的毫秒数。我们减去直到开始的毫秒数(startTime(。

let timeDifference = new Date().getTime() - startTime;

因此timeDifference包含从开始到现在已经过去的毫秒数。

while循环一直运行,直到timeDifference大于5000毫秒(=5秒(。

while(new Date().getTime() - start < 5000);

(我们不能使用变量,因为日期对象是静态的,声明后不会改变。所以时间保持不变。(

代码

我用const替换了let,因为start时间不变。

我用Date.now()代替了new Date().getTime(),因为它更短、更快、更有意义。

const start = Date.now();
while(Date.now() - start < 5000);

setTimeout

如果希望代码暂停x毫秒,可以使用setTimeout()方法。

setTimeout(function(){ alert("Hello"); }, 5000);

你可以在这里阅读。

相关内容

最新更新