Olá, Vitor! Tudo bom com você?
A função addEventListener funciona para criar um gatilho para algum elemento. Então, por exemplo, você pode criar um gatilho de click para que determinada função ocorra sempre que for clicado sobre aquele elemento.
Já a função addAttribute é usada para adicionar ou atualizar atributos de algum elemento, como adicionar uma nova classe, por exemplo.
Agora, com relação se essas funções servem para fazer trocas de páginas inteiras, eu estou por fora, e pelo que vi até então, normalmente é mais usada para trocar parte dos elementos de uma página. Você conseguiria fazer sim, claro, uma simulação de troca de página inteira, como por exemplo, criando um único HTML que contenha o conteúdo de mais de uma 'página', criando uma forma que os elementos sejam trocados quando determinada ação é tomada. Mas ainda assim, está sendo somente a troca dos elementos em uma única página.
Espero ter ajudado, bons estudos e abraços, meu amigo!