实验一段有趣的js代码。

代码如下:

[...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days));

演示解说:

这段代码的作用是返回未来七天的时间(包括现在)(utc时间https://baike.baidu.com/item/%E5%8D%8F%E8%B0%83%E4%B8%96%E7%95%8C%E6%97%B6/787659?fromtitle=UTC&fromid=5899996&fr=aladdin)。

node.js演示:(源码:https://github.com/llh1187/funnytest/tree/master/test-js

网上utc时间对比:

 

 

代码解说:

目前来说。所理解到的,

  A=>B 是将B结果赋值给A(第二次修改:这样想是错误的)
  86400000单位是毫秒 代表一天。
  Date.now() 方法返回自1970年1月1日 00:00:00 UTC到当前时间的毫秒数。new Date(Date.now()) 为当前时间。
  map 返回键值对
  扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列(ECMAscript6语法 http://es6.ruanyifeng.com/#docs/array

  具体详细的理解,现在还没能理解到:cry:。

  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二次更新,经过segmentfault社区的解答(https://segmentfault.com/q/1010000019065728?_ea=10621036),再加上阅读MDN文档:

箭头函数 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_functions#%E6%9B%B4%E7%9F%AD%E7%9A%84%E5%87%BD%E6%95%B0

 Map https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

自己终于了解到了这段代码的意思。

[...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days))

=>[...Array(7).keys()].map( days => {return new Date(Date.now() + 86400000 * days);})

=>[...Array(7).keys()].map( (days) => {return new Date(Date.now() + 86400000 * days));}

=>[...Array(7).keys()].map(function (days)  {return new Date(Date.now() + 86400000 * days));}

 

 

[...Array(7)]=>键值为[0,1,2,3,4,5,6]的空数组。 keys() 为键值。

转载于:https://www.cnblogs.com/1024hack/p/10808799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值