Clearing URL hash
Visit stackoverflow.com/#_=_ and window.location.hash evaluates to #_=_ . Fine. Now execute window.location.hash = '' to clear the hash, and the URL becomes stackoverflow.com/# . (Notice the trailing # .) Why is the # in window.location.hash inconsistently included or excluded? How can the # be removed from the URL without reloading the page? ( MDN says [the hash is] the part of the URL that follows the # symbol, including the # symbol. but that is not true for in the case of an empty hash.) To answer the second question (removing the # without a page refresh): history.pushState('', document