我想这是javascript中的绝对新手问题。
我想知道javascript日期' - '的意思。
示例:新日期(2010年,12 - 1日,10日,22日,00日,00日);
12 - 1在上面说了什么。
由于
答案 0 :(得分:6)
它减去一个得到11
。
为什么呢?这通常是前一个月号码“关闭”的结果,因为.getMonth()
是基于0的,其他日期部分是从1开始的。 Date()
的签名如下所示:
new Date(year, month, date, hour, minute, second, millisecond)
...但month
参数为0-11
,其中year
和date
参数为1-based
。你认为12
是12月,但是从0开始,它是11
而不是12
...你看到的代码风格是表达这种风格的一种方式,或者至少让你去“等一下......”并看到它不是November
,因为你直觉地想到作者是否只是在那里放了“11
”。
答案 1 :(得分:3)
12 - 1 == 11,一个简单的数学表达式。
它用于通知代码的读者,这个日期是12月。
由于Javascript中的月份为0(0 - 1月 - 11月 - 12月),因此更容易看出作者的意思。
这个习语也存在于Java中。而且由于Javascript“借用”了Java中的名字,如果它借了更多的东西就不会感到惊讶; - )
索引从0开始的for循环是一个常见的习惯用法,因此Date
的作者可能使用了这样的代码:
for ( var i = 0; i < 12; ++i) {
console.log( new Date( 2010, i, 1));
}
看起来很典型,但是当基于0的索引不自然时使用很尴尬,比如几个月。
答案 2 :(得分:2)
这是一个简单的数学运算(12 - 1 = 11)。