Front-end development, sometimes refered to as client-side programming, manages everything that users visually see when interacting with an application. It defines the look and feel of the app and is about design and implementation of efficient, easy-tuo-use and stylish user interfaces.
JS supports object-oriented, event-driven and functional paradigms of programming. Just-in-time compilation is a way of executing computer code that involves compilation during execution of a program – at run time – rather than before execution.
For many years, JS was mostly used only within browsers for client-side programming. A stand-alone JS runtime environment named Node.js was developed by Ryan Dahl capable of executing JS code outside a browser. This made implementing the back-end of an app in JS accessible and easy.
CSS stands for Cascading Style Sheets. Using CSS, we can describe how we want HTML elements in a web page get displayed; we give make the presentation of the content stylish!
To sum up, HTML is the main technology used for generating/presenting web content, while CSS facilitates styling the html content, and JS, as a powerful programming language, enables incorporating logic/functionality into the web pages.