Tak jak kolega @BT101 zauważył, obecnie twój kod jest narażony wycieki informacji do global scope. Zainteresuj się tutaj modułami, pomogą one rozwiązać Ci ten problem. Inna sprawa: po co zwracasz coś w funkcjach, skoro nic potem nie robisz z tymi wartościami? Na koniec mam dla Ciebie radę. Obecnie twój program jest napisany bardzo funkcyjnie. W ramach treningu możesz przepisać go na obiektowo, wykorzystując mvc lub programowanie reaktywne (np. RxJS). Myślę, że możesz sporo z tego wyciągnąć.