MDN says that valueOf and getTime are functionally equivalent. Why have two functions that do the very same thing?
valueOf is a method of all objects. Objects are free to override this to be what they want.