前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS中关于Date的小知识

JS中关于Date的小知识

作者头像
用户9914333
发布2022-07-22 14:22:09
2.7K0
发布2022-07-22 14:22:09
举报
文章被收录于专栏:bug收集

来看一道考题:

代码语言:javascript
复制
var day=new Date(2017,5,31);
console.log(day.getMonth());
结果为()
A.  2017 
B.  31
C.  6 
D.  5

结果:选择C

为什么?

为什么?

为什么?

解析:

new Date()语法:

代码语言:javascript
复制
new Date(year, monthIndex [, day [, hours 
          [, minutes [, seconds [, milliseconds]]]]]);

getMonth()方法:

返回一个0 到 11的整数值:0 代表一月份,1 代表二月份, 2 代表三月份,依次类推。

根据上面的知识,我们知识了new Date() 第二个参数monthIndex,指的就是月份对应的索引, 一般比正常的月份值少1.

而getMonth()方法,刚好也是获取对应的索引值,那结果为什么为返回6呢?

运行结果 :

为什么呢?我们来做下测试,把day对应的值改一下,

改个3看看,输出结果为5;

改成36,输出为6;

改成66,输出结果为7

如下图:

总结:

原来,当day值,超过了当前月的最大值,最后进行天数相加,而不是直接赋值;

题中,monthIndex为5,实际为6月,月份只有30天,而当day为31时,多的一天,就会加一天,即变成了7月。getMonth()输出即为6

哈哈,懂了嘛,又了解了一个小知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档