Le langage du Web
Défiler pour commencer
ESIG 1ère année — Semestre 2
Objectifs, outils et organisation du cours
15 séances détaillées avec objectifs
44 exercices répartis en 9 modules
JavaScript est un langage de script, multiplateforme et orienté objet.
C'est un langage léger qui doit faire partie d'un environnement hôte (un navigateur web par exemple) pour pouvoir être utilisé.
Créé en 1995 par Brendan Eich chez Netscape, initialement appelé LiveScript.
JavaScript ≠ Java
Renommé JavaScript pour bénéficier de la popularité de Java dans les années 90. Les deux langages n'ont rien en commun !
ECMAScript
Nom officiel standardisé par ECMA (European Computer Manufacturers Association). ES6 (2015) est la version majeure moderne.
Création par Brendan Eich. Pages web interactives, validation de formulaires.
Simplification du DOM, animations, compatibilité navigateurs.
Mode strict, JSON natif, nouvelles méthodes tableaux.
Backbone.js, AngularJS, Ember.js. Applications web structurées.
let, const, arrow functions, Promises, modules.
React (2013), Vue.js (2014), Angular 2+ (2016). Composants & Virtual DOM.
💡 Aujourd'hui
JavaScript est le langage le plus utilisé au monde. Il évolue chaque année avec de nouvelles fonctionnalités (ES2020, ES2023...).
Exécuté ligne par ligne, pas de compilation
Basé sur les prototypes
Les types sont déterminés à l'exécution
Navigateur, serveur, mobile, desktop
maVariable ≠ mavariable
JavaScript ≠ Java (aucun lien !)
JavaScript est principalement utilisé dans le navigateur pour rendre les pages web interactives.
Les traitements côté client permettent des interactions plus rapides sans attendre le serveur.
Architecture client-serveur
V8
Chrome, Edge
SpiderMonkey
Firefox
JavaScriptCore
Safari
Chakra
IE (obsolète)
Réactivité
Interactions instantanées sans requête serveur
Économie serveur
Moins de charge sur l'infrastructure
Scalabilité
Plus d'utilisateurs simultanés
UX améliorée
Interfaces riches et dynamiques
🔒 Sécurité — Ces limitations protègent l'utilisateur contre les sites malveillants.
Fonctionne nativement avec HTML et CSS — la trinité du web
Supporté par tous les navigateurs par défaut
Frontend, Backend, Mobile, Desktop
Frontend
Vue.js, React, Angular
Backend
Node.js, Deno
Mobile
React Native, Ionic
Desktop
Electron (Slack, Discord)
Idéal pour tester rapidement du code.
// Ouvrir avec :
Ctrl + Shift + J // Windows
Cmd + Option + J // Mac
alert("Bonjour !");
Code entre balises <script>.
<h1>Ma page</h1> <script> alert("Bonjour !"); </script>
⚠️ Éviter de mélanger JS et HTML dans le même fichier.
Testez du code JavaScript directement dans votre navigateur !
La meilleure pratique est de séparer le JavaScript dans des fichiers .js externes.
index.html
<!DOCTYPE html> <html> <head> <title>Ma page</title> </head> <body> <h1>Contenu</h1> <!-- Script à la fin ! --> <script src="app.js"></script> </body> </html>
💡 Pourquoi à la fin du body ?
Organisation
HTML, CSS et JS séparés
Réutilisation
Un fichier JS pour plusieurs pages
Cache navigateur
Le JS est mis en cache
Maintenance
Plus facile à débugger
En ajoutant "use strict" au début d'un script,
on demande au navigateur de respecter la norme ECMAScript
et d'arrêter le script à la moindre erreur.
"use strict"; // Erreur ! Variable non déclarée msg = "Bonjour"; // ❌ Crash // Correct let msg = "Bonjour"; // ✅ OK
✅ Toujours utiliser "use strict"
Évite les auto-corrections silencieuses du navigateur qui masquent les bugs.
Variables non déclarées
x = 10; // Erreur
Mots réservés comme variables
let private = 1; // Erreur
Paramètres en double
function f(a, a) {} // Erreur
Suppression de variables
delete x; // Erreur
Variables, fonctions, méthodes
let userName = "Alice"; let totalPrice = 99.90; function calculateTotal() { } function getUserById() { }
Constantes globales
const MAX_USERS = 100; const API_ENDPOINT = "/api"; const DEFAULT_TIMEOUT = 5000;
Classes et constructeurs
class UserController { } class ProductModel { } class ShoppingCart { }
Préfixe descriptif + camelCase
const btnSubmit = document... const inputEmail = document... const divContainer = document... const listItems = document...
Référence officielle Mozilla
Tutoriel moderne et complet
Support de cours
Assistant IA pour le cours
Ouvrez la console de votre navigateur et tapez :
alert("Hello World!");