Linguagem de programação criada para ser executada em browsers e permitir alteração de comportamentos de páginas Web dinamicamente. Exemplos de elementos dinâmicos: mapas, infográficos interativos, formulários, operações numéricas, animações, etc.
Desenvolvimento Web (frameworks: jQuery, React, Vue, Angular), desenvolvimento mobile (frameworks: React Native, Vue, PhoneGap, Ionic, Flutter), desenvolvimento back-end (ambiente de execução Node.js), jogos (framework Phaser), etc...
HTML e CSS
Fonte: dev.to
Parser
identifica os elementos do código
AST serve para validar semanticamente esses elementos
Interpreter
interpreta o código linha a linha
Profiler
avalia o código (durante sua execução) a fim de identificar áreas onde técnicas de otimização podem ser aplicadas
Compiler
produz novo código de máquina otimizado para os trechos identificados