Date objects are just an offset in milliseconds from the ECMAScript epoch, 1970-01-01T00:00:00Z. They do not have a timezone. When you stringify the object you get a timestamp that depends on the method used.
Most methods (e.g. toString) use the host settings for timezone and offset and produce timestamps based on those settings.
If you want an ISO 8601 compliant string with zero offset, the use toISOString or toUTCString depending on the format you want:
let d = new Date();
console.log(`local time : ${d.toString()}`);
console.log(`toISOString: ${d.toISOString()}`);
console.log(`toUTCString: ${d.toUTCString()}`);
See How to format a JavaScript date.
In your code, the expression:
new Date(new Date().toISOString())
firstly creates a Date object for the current moment in time, then generates a timestamp per the toISOString method. That is then parsed back into a Date object, so the result is identical to:
new Date();