JS中关于Date的小知识

2022-07-22 14:22:09 浏览数 (1)

来看一道考题:

代码语言: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

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

0 人点赞