Como uso o window.history em JavaScript?

Encontrei muitas perguntas sobre isso no Stack Overflow, mas todas eram muito específicas sobre certas partes. Eu encontreiesta pergunta cujas respostas fornecem boas referências, mas na verdade não explicam como tudo funciona, e seus exemplos quase não fazem nada. Quero saber mais sobre como tudo funciona juntos e quero usar o JavaScript baunilha.

(Além disso, muitas das respostas para outras perguntas têm anos.)

questionAnswers(1)

yourAnswerToTheQuestion