All that is very good. But as a back end guy dabbling in front end, it would be more welcoming if JS was a little intuitive. I'm very thankful for LLMs now helping with that a bit, but honestly even they seem to fail at JS more so than other languages, at least in my experience so far.
I don't know if my experience is any guide but for me, coming from C++, I hated JS (~2008 is when my job required it). I kept trying to use it as C++. Over time I learned to love it. I stopped trying to make it C++ (or Java/C#, etc...) and actually embraced it.
Now the tables have turned (to some degree). I can write programs in JS in 1-3 days that take weeks or months in C++/C#/Java
Some of this comes from the browser environment. I get portable 2d/3d/gpu graphics, portable audio, image loading, video playback, and complex text rendering and layout, portably and for free. Back in C++/C# land, every new project is a chore of setup and fighting with linkers and build options etc. I post some code in a github repo with github pages on, or in some JS playground like codepen, and instantly share it with all friends regardless of platform.
Another comes from the language itself. I can often generically wrap existing APIs in a few lines of codes, things that used to take days and/or large program refactors to do in C/C++.
And, the tools are pretty good, Chrome DevTools are as good or better than my experience in C/C++. Right now, when I try to debug in C++ in XCode, std::string shows nothing and containers are inscrutable. I'm sure that's fixable. The point is, I shouldn't have to fix basic stuff.
Now of course I'm using TypeScript for some projects and the types help but I'm often glad for the escape hatch for more generic code. It takes me 15 mins to write some generic system in JS and then 2-4hrs to figure out how to get TypeScript happy to type it. As an example, a function that creates a new TypedArray of the same type as some src array. Easy to write in JS. Harder to type in TS. That's effectively part of the same issues I have in C++, the part that stalls progress, that I don't have the escape hatch for generic solutions.
PS: Yes, it's not that hard to type a generic TypedArray function in TS. But it's certainly a learning curve, or was before LLMs, and I've had to type much more complex functions that required no typing in JS
Much of the challenge in JS today is due to unnecessary packages, build systems, and workarounds found throughout blogs and forums which were reasonable 5-10 years ago but aren't really needed today. Unfortunately, LLMs tend to output old-fashioned JS.
With (almost) everyone using an up-to-date standards-compliant browser, you can sidestep most of the complexity and weirdness by just using the standard library and ES Modules (instead of frameworks, libraries, build systems etc.) and an IDE with good intellisense + inline documentation lookup.
MDN documentation is good and up to date overall, but I'm not sure there is a good overview/entry point resource that is up to date as of today... maybe I'll have to write it!