All these three commands are use to redirect to another webpage but have a very different impact on the browser history.
Replace method, will replace the current page with the one provided in the parameter. The current page will not be saved in session, so you won't be able to go back in history using 'Back' button in the browser.
Maybe little example will clear this up to you:
Assign method, will redirect to the given url but it will keep in history original document, so you can navigate to the previous webpage using 'Back' button.
3. window.location.href = url;
Using location.href to redirect to the different document will also keep the browser history just like assign method.
So if you want to simulate user click use location.assign() method or location.href property, this will keep full browser history.
If you want to simulate HTTP redirect use location.replace() - this will replace previous item in the history of your browser session.