带有神秘附加字符的 Javascript Date getTime() 代码片段
Posted
技术标签:
【中文标题】带有神秘附加字符的 Javascript Date getTime() 代码片段【英文标题】:Javascript Date getTime() code snippet with mysterious additional characters 【发布时间】:2013-08-23 22:35:53 【问题描述】:<script language="javascript">
var t = new Date();
t.getTime() + -864e5;
</script>
第二行末尾的“+”之后的那个时髦的代码是做什么的?
这可能很难理解,因为我怀疑这是他们试图保护自己免受刮擦的一种方式。
【问题讨论】:
这是一个数字字面量:developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/…. 这是科学记数法。 What number does 8e3 evaluate to?的可能重复<script language="JavaScript">
- 1999 年的派对!
【参考方案1】:
这是一个有效的 JavaScript 数字,表示一天 24 小时中的毫秒数。
1000*60*60*24 or 86400000 or 864e5
【讨论】:
不知道为什么有人会想要使用这种方法——它确实让代码更难阅读......甚至你可能需要在Stack Overflow 上发布问题才能理解它: P @Mattis:它否定了这个数字。喜欢5
和-5
。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 。当然,写a - b
而不是a + (-b)
会更容易,但是好吧......
@Mattis:不,只是为了让脚本更短。抓取并不复杂,每个浮点数解析器都支持这种格式。【参考方案2】:
-864e5
表示“减去 1 天”。所以 JavaScript 真的得到了 24 小时前的日期/时间。
【讨论】:
【参考方案3】:864e5 是一个有效的 JavaScript 数字,表示一天 24 小时内的 毫秒(毫秒是 1/1000' 秒)的数量。
1000*60*60*24 = 86400000 或使用指数表示法 864e5
【讨论】:
【参考方案4】:看起来 + -864e5 将时间偏移到过去 1 天。
它确实不是很可读,或者对于第一次看它的人来说很有意义,但在裸 js 中真的没有任何其他方式(在这一点上)。
【讨论】:
getTime()
返回毫秒数。
无赖。我希望 cocco 的 anwser 中的上述数学运算能在几天内产生。帖子已编辑。
当然还有其他方法。如果你担心人们不理解你是否使用科学,你可以用常规符号写出这个数字。或者,如果您担心人们不知道 86400000
的重要性,您可以发表评论来解释这一点。为什么要使用+ -864e5
而不仅仅是- 864e5
?以上是关于带有神秘附加字符的 Javascript Date getTime() 代码片段的主要内容,如果未能解决你的问题,请参考以下文章
带有完整查询字符串的 Javascript document.referrer