Javascript Date
objects include a time as well. If you create one with no time component, it defaults to midnight.
The question is, midnight in what time zone? If you are parsing a date from a string, that is not specified in the ECMAScript definition; it's up to the implementation. But most implementations choose Universal Time - which means that the represented instant falls on the previous day anywhere west of London and east of the international date line.
If you create the date from numbers instead of parsing a string, it is specified to be local time instead, in whatever time zone Javascript thinks it's in. For example, here in US/Eastern ("EST"):
new Date('2016-02-04')
//=> Wed Feb 03 2016 19:00:00 GMT-0500 (EST) - midnight UTC
new Date(2016,2,4)
//=> Fri Mar 04 2016 00:00:00 GMT-0500 (EST) - midnight EST
You can add an explicit time and time zone to the end of the string:
new Date('2016-02-04T00:00:00-05:00')
but you have to know the time zone offset to do that. Or you can manually parse the string and use the numeric constructor, which is probably your safest bet.