I can understand your frustration a little.
If you’re not constantly busy with something and it develops rapidly, it can happen.
I’ve had these phases for the last years. But I couldn’t just continue on the basis of my first program either. Although this beginning still gives me a lot! Back in autumn 1969 it was interesting to find a square root with assembler. (Polish calculator Zam 2 https://pl.wikipedia.org/wiki/ZAM-2)
When I had to deal with HTML about years ago, I found a lot to criticize about it. I had worked with some programming languages in the meantime. HTML was a stylistic break for me. But at the beginning it was not foreseeable what it would be used for later. It came from a pure side design. I found the tags horrible. (Still a little bit! )
You can approach it differently and then possibly venture further.
Take instructions let and const.
In three.js and three.module.js you only find
if ( ! array || // let 'undefined' and 'null' pass
and const in shader parts.
“ES6 introduced let and const, which are basically designed to replace var. You can still use var to keep things backward compatible, but you don’t need to anymore, and we’ll never use var in this book.”
I have resisted first (let like ancient BASIC )
Then I tried it. It is a matter of familiarization.
On the other hand, @Mugen87 continues to use var in its jsfiddles.
Serenity is appropriate.
I will try out the module variant next year.
By the way - for my Collection of examples from discourse.threejs.org (basic examples) I copy the required files of the current revision. So the examples remain safely executable. (A classic problem for demonstration: https://stackoverflow.com/questions/37005480/three-js-v74-and-up-dont-support-lathegeometry )