JavaScript est un langage qui s'est imposé pour la manipulation de pages HTML en utilisant l'arbre DOM. Il permet de réaliser des interfaces graphiques en utilisant les technologies du web (HTML5, CSS...) et dispose d'APIs plus ou moins standardisées. JavaScript est également utilisable avec le framework Node.js pour la programmation côté serveur afin de réaliser des applications web. Il existe des langages dérivés de JavaScript (tel que TypeScript) avec une syntaxe rétro-compatible qui ajoutent de nouvelles possiblités syntaxiques ; ces langages peuvent être transpilés en JavaScript classique.
Nous listons ici (non exhaustivement) quelques contextes d'utilisation du langage JavaScript :
-
Usage dans un composant de rendu HTML embarqué dans une application
- Navigateur classique
- Composant de type WebView embarqué dans une application mobile (utilisation de frameworks tel que Cordova)
- Réalisation d'interfaces graphiques pour application de bureau (framework Electron)
- Développement de scripts (Node.js)
- Développement d'applications web côté serveur (Node.js)
-
Utilisation d'un moteur JavaScript comme système de scripting embarqué dans une application
- API WebExtension pour le développement d'extensions pour les navigateurs web (compatible avec Firefox, Chrome, Opéra...)
- Scripts pour LibreOffice
- Scripts pour les applications Adobe (Photoshop, InDesign...)
- ...
Il existe deux principaux moteurs (dévelopés en C et C++) utilisés par les navigateurs capables d'exécuter du code JavaScript (avec un système de compilation à la volée) :
- V8 : moteur JavaScript développé par Google ; il s'agit du plus utilisé (notamment par Chrome, Node.js, Electron...)
- SpiderMonkey : moteur JavaScript de la fondation Mozilla utilisé par Firefox
Il existe d'autres moteurs JavaScript développés en Java :
Conseil préliminaire
Si l'on souhaite tester rapidement le rendu de pages HTML et que l'on n'utilise pas de framework JavaScript spécifique disposant d'un commande lançant un serveur de test, il est recommandé de lancer un serveur web et de consulter les pages depuis ce serveur. En effet les navigateurs brident généralement les fonctionnalités disponibles (notamment de récupération de contenu distant) lorsque l'on accède à des pages locales sur le disque. On peut par exemple utiliser Python qui propose une bibliothèque avec un serveur web minimaliste que l'on peut lancer en ligne de commande (après s'être déplacé dans le répertoire à servir) en indiquant le port à écouter :
python -m http.server 8000
On peut ensuite consulter les pages du répertoire courant avec un navigateur pointant sur http://localhost:8000.
⚠ La plupart des APIs JavaScript sont testables depuis localhost. En dehors de localhost (sur un site distant), certaines APIs (géolocalisation, notifications...) exigent le chiffrement de la connexion (https).
Pages de cours
- La description de pages web
- Les langages de script
- Les APIs web utilisables en JavaScript
- Les frameworks de développement basés sur JavaScript
Sites web intéressants
- Mozilla Developer Network (MDN): une des documentations les plus complètes sur les technologies web (HTML5, CSS, JavaScript...) et leurs APIs
- CanIUse : un site répertoriant les versions des navigateurs supportant chaque API