こちらの記事で、Dateオブジェクトをつくるときは、
new Date(dateString);
ではなく、
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
という感じでつくろうと決意したわけですが、monthIndexやdayには負の値が入れると便利になることがあるということを知りました。
例えば、
new Date(2018, 0, 1);
だと、
Mon Jan 01 2018 00:00:00 GMT+0900 (日本標準時)
という感じで、2018年の1月1日のオブジェクトが返ってきますが、
new Date(2018, 0, 0);
だと、
Sun Dec 31 2017 00:00:00 GMT+0900 (日本標準時)
という感じで、2017年の12月31日が、
new Date(2018, 0, -1);
だと、
Sun Dec 30 2017 00:00:00 GMT+0900 (日本標準時)
という感じで、2017年の12月30日が返ってくるようです。
場合によっては便利に使えそうです。