Zacznijmy od tego, że czytając inne odpowiedzi tutaj, dochodzę do wniosku, że JS wciąż jest postrzegany jako język browserowy.
Otóż nie: JS jest językiem ogólnego użytku i w żaden sposób nie jest związany z przeglądarką. Obecnie JS jest obecny m.in.:
- na serwerze (node.js, rhino)
- w aplikacjach desktopowych (Electron.js, nw.js – tak działa choćby Atom czy Brackets; ba, na upartego stare appki na XUL-u – np. GG – też stoją w dużej mierze na JS)
- w serwerach baz danych (MongoDB, CouchDB)
- w aplikacjach mobilnych (Ionic, NativeScript, React Native, Cordova i wiele, wiele innych…)
- w przeglądarce, rzecz jasna, ale tutaj jest pod co najmniej 2 postaciami:
» normalny, tradycyjny JS, związany z operowaniem elementami strony (czyli tak naprawdę JS + DOM API)
» zoptymalizowany subset do uruchamiania "ciężkich" rzeczy – czyli asm.js, w późniejszym etapie zamieniony w WebAssembly, czyli jeszcze inaczej: compilation target dla Webu ("kompilacja" z C++ do JS).
- ba, KDE ma nawet widgety w JS…
I dopiero teraz możemy zacząć rozmowę o JS, bo sprowadzanie go do prostego języka przeglądarkowego w dzisiejszych czasach to po prostu jawna kpina.