JavaScript
JavaScript | |
---|---|
▬▶ | |
⚐ brouillon | ☸ débutant |
⚒ 2015/10/20 | |
Voir aussi | |
Catégorie: JavaScript |
Cet article est en construction: un auteur est en train de le modifier.
En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.
Introduction
Cette page propose une description des différents aspects de JavaScript d’un point de vue plutôt théorique et conceptuel, sans entrer dans les détails du codage. Pour une approche plus concrète, basée directement sur les caractéristiques du langage, voir :
- Tutoriel JavaScript de base ou les autres pages de la catégorie JavaScript
- en:Javascript tutorial - basics
- en:DHTML
- en:HTML forms tutorial
- Eventuellement: en:ECMAScript, en:Javascript, en:DHTML, en:JavaScript links
Définition formelle
« JavaScript est un langage de script, multi-plateforme et orienté objet » (Mozilla Developer Network, 2015). Cette brève définition, qui ne sera pas très explicative pour un néophyte, permet par contre de synthétiser les points forts d’un langage souvent sous-estimé, mal compris et surtout mal utilisé (Crockford, 2008). Longtemps considéré comme un pseudo-langage dont l’utilité était limitée à quelques fonctionnalités de base pour les pages web (surtout pour les formulaires web), JavaScript est en réalité un langage très puissant, avec un cadre d’utilisation très large.
Histoire de JavaScript
JavaScript a été créé en 1995 par Brendan Eich qui travaillait à l’époque pour Netscape. Le langage (également connu au début avec les noms de Mocha ou LiveScript) est devenu ensuite partie des standards ECMA pour en favoriser la diffusion et l’utilisation. Le nom "JavaScript" reflète certaines similitudes syntaxiques avec Java (mais JavaScript et Java sont des langages différents !).
L’histoire de JavaScript est longue et compliquée (voir une brève histoire sur le site W3C). De manière très schématique on peut séparer l’histoire de JavaScript en deux périodes :
- Avant le Web 2.0 : langage peu et mal utilisé, considéré un pseudo-langage à éviter pour les développeurs « sérieux » ;
- Après le Web 2.0 : boom du langage qui est utilisé pour ajouter des fonctionnalités interactives aux pages web, grâce notamment à son intégration avec HTML5
Plus récemment (environ 2015) il y a également la tendance à utiliser JavaScript aussi en dehors des pages web, notamment dans le développement côté-server ou dans le développement d’application desktop et mobile.
Comprendre JavaScript
Une des pratiques pour initier les néophytes à JavaScript consiste à montrer un exemple de boîte d’alerte qui s’affiche à l’intérieur du navigateur web avec un « Hello world ». Voici le résultat en image et le code pour l’obtenir :
alert("Hello World en JavaScript");
Cet exemple, qui est sans doute utilisé pour sa simplicité d’une part, et probablement pour l’excitation qu’il est censé transmettre aux néophytes par le fait qu’il se passe quelque chose à l’écran, n’est cependant pas très représentative des bases du langage. En effet, JavaScript s’articule sur trois niveaux emboités. De l’intérieur à l’extérieur on trouve :
- Les fondamentaux du langage
- L’environnement
- Le code source
Les fondamentaux du langage
Le premier niveau concerne les éléments fondamentaux et constitutifs du langage lui-même. Comme tout langage de programmation, on retrouve à ce stade des aspects liés à la syntaxe, aux éléments nécessaires pour la construction d’algorithmes, etc (voir Introduction à la programmation. Les éléments disponibles à ce niveau sont accessibles à tout moment et n’importe quel est le cadre d’utilisation de JavaScript.
L’environnement
Le deuxième niveau concerne l’environnement dans lequel JavaScript est exécuté, car selon le type d’environnement, le langage aura accès à différentes éléments et fonctionnalités. C’est à ce stade qui se fait la distinction entre JavaScript « côté-client », « côté-server » et d’autres types d’utilisation.
JavaScript « côté-client »
L’exécution du code se fait directement sur l’ordinateur de l’utilisateur, plus spécifiquement à l’intérieur du navigateur web. Le langage de base est implémenté par des éléments qui permettent d’accéder à certains aspects du navigateur, notamment au niveau de la fenêtre qui contient la page visualisée (i.e. le document). La création de la boîte d’alerte utilisée dans l’exemple au début de cette page se situe exactement à ce niveau : la boîte n’est pas un élément fondamental du langage, mais est un élément du navigateur web auquel JavaScript a accès grâce à une sorte de « extension » du langage de base. De manière plus technique, JavaScript peut accéder à l’objet window
du navigateur qui possède une méthode (fonction) nommée alert
et qui permet d’afficher un message sous forme de boîte. JavaScript côté-client implique surtout la manipulation de l’objet document
à travers la modification de la structure du document (DOM, Document Object Model).
- Voir le Tutoriel JavaScript de base pour plus d’informations sur le côté client de JavaScript.
JavaScript « côté-server »
L’exécution du code se fait directement sur le server, c’est-à-dire sur l’ordinateur qui reçoit les requêtes (e.g. une requête http pour une page web). Le langage de base est implémenté par des éléments qui permettent d’accéder à certains éléments utiles pour fournir un service aux utilisateur qui ont lancé la requête, par exemple la recherche dans une base de données, l’envoie d’email, etc.
- Voir plus bas dans cette page ou la page Node.js pour plus d’informations sur le côté serveur de JavaScript.
Autre environnements
Le même principe s’adapte à tout autre environnement (logiciels desktop, « embedded devices », etc.). Par exemple lors de l’utilisation de JavaScript pour développer des applications mobiles, le langage fondamental sera implémenté par des éléments propres au smartphone (e.g. orientation, microphone, GPS, etc.). Voici quelques exemples d’utilisation de JavaScript dans d’autres environnements :
- Développement d’application Desktop cross-plateforme http://electron.atom.io/
- Développement d’application mobile http://phonegap.com/
Le code source
Le troisième niveau concerne le code source, c’est-à-dire le code écrit par le(s) développeur(s) et qui représente l’application (i.e. le programme – ce qu’on peut/veut faire avec l’ensemble des instructions). Le code source se compose du mélange entre éléments fondamentaux et éléments disponibles dans l’environnement. Par conséquent, il faut connaître à la fois les éléments de base de JavaScript, mais également l’environnement dans lequel le code source va être exécuté.
Voici un premier exemple de combinaison très simple de code source pour obtenir un résultat similaire à la boîte d’alerte de l’exemple de départ, c’est-à-dire dans l’environnement côté-client du navigateur web (la seule chose qu’il faut connaître à propos du code à ce stade concerne l’utilisation des commentaires avec la notation //Ceci est un commentaire, pas une instruction
).
//Utilisation du langage fondamental pour associer à une variable nommée 'message' la suite de caractères (string) 'hello world';
var message = 'hello world';
//Utilisation du langage fondamental pour associer à la variable nommée 'shout' la transformation de 'hello world' en 'HELLO WORLD' grâce à la méthode toUpperCase() associable à une suite de caractères (i.e. objet string).
var shout = message.toUpperCase();
//Utilisation de l'environnement pour afficher 'HELLO WORLD' dans une boite d'alerte disponible dans le navigateur web de l'utilisateur grâce à la méthode alert() associable à la fenêtre (i.e. objet window) du navigateur.
window.alert(shout);