Push/Pop State

Open this page in a new tab to start with an empty history stack.

history.pushState()で、stateをpushすると、そのstateがスタックの一番上にpushされたような気がするが、これは間違っている。

history.pushState()で、stateをpushすると、そのstate(A)が「現在のstate」となり、history.stateで参照できるが、まだstackには入っていない。

さらに、もう一度、history.pushState()で新しいstate(B)をpushすれば、Bが「現在のstate」になり、前にpushしたstate(A)が、スタックのトップにはいる。

もしここで、バックボタンが押されたら。state(A)がスタックからpopして、history.stateに入る。history.stateに入っていたstate(B)は捨てられる。