High level - Plus proche du langage “humain” que du langage “machine” ( php, java, c# )

Single threaded - seulement une seul operation est executée à chaque fois. MEme si il est single threaded il peux gérer du code asynchrone en utilisant l’API Promise (qu’on verra un peu plus tard)

garbage collected - pas besoin de s’embeter a gérer la mémoire , comme avec Java il y a un programme qui s’occupe de libérer la mémoire qui n’est plus utilisée

interpreted | JIT compiled - a la différence d’un langage compilé ( comme par exemple java ). JS a besoin d’un interpreteur pour lire et executer le code ligne par ligne

prototyped based - flemme d’expliquer

multi paradigm - permet de faire de la programmation orientée object ou fonctionnelle

dynamic langage - il n’y a pas de typage en JS , le typage est dynamique et il est déduit par l’interpréteur

with a non blocking event-loop - permet de mettre en “attente” des taches en background sans bloquer le thread principal.

Untitled

Rendu célèbre pour son utilisation dans le développement de site web dans un premier temps.

Il est célèbre pour avoir été créer en 1995 par Brendon Eich en seulement une semaine. Le but premier etait d’ajouter un langage de scripting pour le navigateur “netscape”

Au début il devait s’appeler MOCHA, mais a l’époque ils voulaient le rendre “sexy” comme le célèbre JAVA. Donc on s’est retrouvé avec JavaScript

De nos jours c’est un langage très complet qui continue d’évoluer avec le temps et l’introduction de nouveaux standards de développement.

Untitled

Javascript s’est fait connaitre dans un premier temps pour sa capacité a interagir avec le DOM d’une page web, permet d’attacher des écouteurs d’évènements et interagir de nombreuses façons avec une page web. C’est aussi le seul langage supporté nativement dans les navigateurs web ( avec web assembly )

<aside> 🛠 Atwood’s Law : Tout ce qui est peux être construit avec Javascript sera éventuellement construit avec Javascript.

</aside>

Comme les application coté serveur avec NODEJS créer en 2009 par Ryan Dahl. Les application mobile avec React Native ou les application de bureau avec ElectronJS