【JS】Date.setMonth()の罠

JavaScriptの日時を扱うDateオブジェクトにて、月を設定するsetMonth()メソッドの罠にはまりました。4月2日に設定するため、下記のコードを書いたとします。 var dt = new Date(); // ①Dateインスタンス作成 dt.setMonth(4-1); // ②4月に設定 dt.setDate(2); // ③2日に設定