[Plan du site]
Vous êtes ici ---
> Le Site du Zér0
> Les tutoriels
> Non-Officiels
> Site Web
> Javascript
> Voir tout le tutoriel
Tout sur le Javascript !
JavaQuoi ?!

Ne me dites pas que vous n'avez jamais entendu parler du JavaScript ! 
(Ou JS, pour les intimes.)
Ce langage de programmation Web véritablement magique qui rend n'importe quelle page morose en une vraie machine dynamique !
Il permet de faire interagir le visiteur avec la page, en réagissant différemment selon les actions de celui-ci. Un langage merveilleux qui, comme vous l'aviez sûrement compris, sera notre sujet d'étude tout au long de ce tutoriel...
Alors, envie de créer un site interactif et attrayant ?
Ne vous inquiétez pas, ce n'est pas difficile... Après tout, nous sommes sur le Site du
Zér0 !
Il est primordial d'avoir des connaissances solides en (x)HTML pour comprendre ce tutoriel ! Si ce n'est pas le cas, direction le
tuto de M@teo sur les sites Web.
Le JavaScript est en effet un langage qui dépend du (x)HTML.
(Nous allons partir du principe que la seule chose que vous ayez appris est l'XHTML et le CSS, d'après le cours de M@teo. Si ce n'est pas le cas, vous allez devoir réapprendre des choses que vous savez déjà, mais sous une autre forme... ).
Bon, assez bavardé, en avant !
Ce cours est composé des parties suivantes :
Partie 1 : Faire connaissance avec le JavaScript
Bienvenue dans la toute première partie de ce tutoriel !
Dans cette partie, vous vous familiariserez avec le JS et découvrirez la syntaxe de ce langage.
Ce sont des notions qui se retrouvent, pour la plupart, dans beaucoup de langages de programmation.
Présentation
Avant de nous lancer dans des lignes de code, je vous ai préparé un petit avant-propos qui ne vous fera aucun mal

. Vous en apprendrez un peu plus sur le
JS (
Java
Script), et nous ferons par la même occasion un peu d'histoire.
Ce chapitre n'est pas placé en annexe car il apporte des éléments importants : prenez donc le temps de le lire.
Au risque de me répéter, le JS s'insère dans une page Web et nécessite donc de bonnes bases en (x)HTML.
Le JavaScript : c'est quoi ?
Qu'est-ce que c'est ?
Définition
Le JavaScript est un langage de programmation.
Pour être plus précis, c'est un
langage orienté objet : quand on code en JavaScript, on se base sur des
objets. Je n'en dis volontairement pas plus pour l'instant, car ce sujet sera abordé un peu plus loin, lorsque vous aurez déjà acquis les connaissances requises.
Pour une définition plus complète, voici un "
remix" de ce que nous propose notre ami
Google :
Citation : Google, define: JavaScriptLe JavaScript est un langage de script basé sur la norme ECMAScript.
Il s'insère dans le code (x)HTML d'une page web, et permet d'en augmenter le spectre des possibilités.
Ce langage de POO [Programmation Orientée Objet], faiblement typé, est exécuté côté client.
Je l'avoue, c'est très compliqué... Mais pas de panique, nous allons aborder les différents points de cette définition au fil du tuto.
Utilisation
Tout d'abord, plantons le décor : de quelle manière s'utilise-t-il ?
Sa principale utilisation est, comme je vous l'ai dit, à l'intérieur des pages web : on dit alors que le JavaScript est
une extension du (x)HTML. Il permet de rendre celles-ci
interactives.
Voici quelques exemples (on pourrait en citer beaucoup d'autres) de ce que l'on peut en faire dans une page Web :
- ouvrir des pop-up (les petites fenêtres qui s'ouvrent de manière intempestive)
- faire défiler un texte
- insérer un menu dynamique (qui se développe au passage de la souris)
- proposer un diaporama (changement d'image toute les X secondes, boutons pour mettre en pause, aller à l'image précédente / suivante, etc.)
- avoir une horloge "à aiguilles" (avec la trotteuse)
- faire en sorte que des images suivent le pointeur de la souris
- créer de petits jeux (comme le classique "Plus ou Moins", cf. TP)
- insérer des balises du zCode (les balises qui apparaissent en cliquant sur le bouton)
- faire un aperçu du zCode en direct.
Vous voyez que les possibilités sont donc nombreuses (le JavaScript sert en effet beaucoup sur ce site).
Il ne faut cependant pas "polluer" son site avec trop de scripts inutiles... Les pop-up ou les images qui suivent la souris partout peuvent agacer le visiteur, et "charger" un site, si bien qu'il est difficile d'accéder clairement aux informations qu'il propose...
L'utilisation du JavaScript ne se limite toutefois pas aux pages web : étant un langage pratique à mettre en oeuvre (il suffit d'un navigateur et d'un éditeur de texte tel que Bloc-notes), il s'est répandu et se répand ailleurs.
Un exemple : vous pouvez créez vos propres
plugins pour
Messenger Plus! Live en
JScript (c'est JavaScript à quelques différences près).
Il est également possible de faire facilement de petites "
applications" en DHTML !
Attend, c'est quoi le DHTML ?
Le DHTML (Dynamic HyperText Markup Language) désigne des pages dont le contenu (ou la mise en forme) est modifié sans avoir à recharger la page. (Ce terme n'a pas de définition officielle du W3C.)
C'est bien le cas des exemples cités ci-dessus : on modifie une image, on la déplace, on fait défiler du texte, ...
Un peu d'histoire ...
Le JavaScript, inventé par un certain
Brendan Eich et développé par
Netscape, fait son apparition en
1995, sous le nom de
LiveScript, dans le but de dynamiser les pages web.
Son utilisation s'est largement répandue, et il se fait rapidement accepter par d'autres navigateurs.
Il est aujourd'hui très présent sur les sites web : de plus en plus de webmasters s'y intéressent, et il est de mieux en mieux accepté, à la fois par les navigateurs et par les visiteurs ; ce qui lui réserve sans doute un bel avenir...
Les caractéristiques du JavaScript
Voici un petit résumé de ce que l'on a déjà pu dire à propos des caractéristiques du JS. Ceci est à
retenir.
- C'est un script (cf. juste après).
- C'est un langage orienté objet, comme je vous l'ai déjà dit (nous y reviendrons).
- Le code n'est pas compilé :
- il est donc plus rapide à produire (pas besoin de compilateur, un seul fichier, ...),
- mais il est moins puissant qu'un programme en C, par exemple,
- et relativement limité : il se limite plus ou moins à la page web sur laquelle il se trouve. Il ne permet donc pas de faire des choses comme manipuler des fichiers sur votre disque dur (heureusement
) ; seulement des choses assez simples.
- Il est exécuté par le navigateur du visiteur (le client), et dépend donc de celui-ci.
- Il est déterminé par une norme, nommée ECMA-262 ou ECMAScript. De la même manière que le W3C se charge de définir clairement le (x)HTML, le JS possède une norme qui fixe également des lois et des limites pour celui-ci, rendant ainsi ce langage plus "officiel". Ainsi, le code est plus facile à écrire, car il y a beaucoup moins de problèmes de compatibilité. Il y a cependant pour le JS quelques différences d'un navigateur à l'autre (des fonctions de l'un qui ne marchent pas sur l'autre, ...), mais cela n'a pas beaucoup de conséquences.
Comment ça marche ?
Primo : un script
Un script ?
Oui,
script, comme dans Java
Script...
Comme beaucoup de mots d'utilisation usuelle (ici dans le milieu de l'informatique),
script a deux sens : l'un, qu'on pourrait qualifier de "
global", l'autre de
strict.
La définition la plus simple est la définition globale, celle qu'on utilise tout le temps et qui pourtant ne veut rien dire :
un script, c'est tout simplement
un bout de code JavaScript qui a une tâche précise.
Dès que l'on parlera de script, ce sera pour désigner le code que l'on aura inséré à notre page Web.
Mais, si ça n'a pas vraiment de sens, c'est parce que la véritable signification du mot script en informatique est bien plus rigoureuse.
Grosso modo, pour faire simple,
un script est, par opposition à un langage compilé, un langage qui s'interprète. Ici, l'interprète du JavaScript, c'est
le navigateur du visiteur (le client).
Cette dernière définition, nous ne l'utiliserons sûrement presque pas : dès qu'on a compris, ça ne sert plus vraiment à grand-chose de le savoir.
L'intérêt des scripts est sans doute leur manière d'être utilisés : en effet, ils ne sont pas obligatoirement exécutés au chargement de la page. Ils sont lancés lorsqu'un événement spécifique se produit.
Pour illustrer ceci, voici quelques exemples d'événements qui peuvent se dérouler lors de la visite d'une page Web :
- lorsque vous chargez la page (exemple : ouvrir un pop-up)
- lorsque vous changez de page (un autre pop-up
)
- lorsque vous cliquez sur un lien (vous aimez les pop-up ?
)
- lorsque vous sélectionnez un élément d'un menu déroulant (vous serez par exemple redirigé vers une autre page)
- lorsque vous validez un formulaire (avant qu'il soit envoyé : vous pouvez alors vérifier si les champs sont correctement remplis).
Et vous vous retrouvez avec un site très interactif : vous ne pouvez plus bouger la souris sans déclencher un script

.
Ceci étant, ce n'est pas un très bon exemple. Je l'ai peut-être déjà dit, mais les pop-up qui s'ouvrent tout le temps, et les scripts à n'en plus finir, c'est
chiant très agaçant (

).
Secundo, un client
Un client ?
Oui, un client (ou encore
visiteur, enfin celui qui visite la page web en question).
Vous avez peut-être déjà rencontré ce mot (dans le sous-chapitre précédent), mais quelques explications s'imposent tout de même...
Si vous avez suivi les cours sur le PHP, vous devriez savoir que celui-ci est exécuté côté serveur.
Autrement dit, vous demandez au serveur de vous donner une page (par exemple la page d'accueil du SdZ) : il va lire cette page, exécuter le code PHP et vous donner la page ainsi générée.
Eh bien en JavaScript, ce n'est
pas comme ça.
Vous demandez la page au serveur : il vous la donne (après avoir exécuté les éventuels scripts PHP), et c'est
votre navigateur qui exécute le script (soit immédiatement, soit lorsqu'un événement précis se produit).
Schématiquement, pour ceux qui justement n'y connaissent rien en PHP, voici comment ça marche :
- votre ordinateur récupère le code source de la page en question.
- Votre navigateur interprète la page et les scripts qu'elle contient.
- La page formatée s'affiche sur votre écran. Les scripts, quant à eux, sont mis en mémoire et seront lancés dès que l'événement attendu se produira.
Et ça change tout !
Comme c'est votre navigateur qui exécute le script, il a donc accès au code de celui-ci (sinon comment ferait-il pour l'exécuter ?

). Et si votre navigateur y a accès... vous pouvez vous aussi y avoir accès (pour les curieux, c'est dans la source de la page, entre les balises (x)HTML, comme nous l'apprendrons rapidement).
Ce n'est donc pas sécurisé du tout !
N'importe qui peut voir le script de votre page !
Les scripts d'une page ne vous plaisent pas ? Qu'à cela ne tienne : il suffit par exemple de désactiver le JavaScript (parmi les options du navigateur web)...
JavaScript et Java
JavaScript n'est pas Java !
Je termine avec un point important (comme diraient nos confrères anglais, "Last, but not least"

) :
Ne pas confondre JavaScript et Java !!!
J'insiste sur ce point. C'est une confusion courante, mais ces langages sont
totalement différents. Le Java a été développé par
Sun Microsystems au début des années 90.
Pour vous donner une idée, le langage Java serait plus proche du C++ que du JavaScript.
- Le JavaScript est placé directement dans le code (x)HTML et fait partie intégrante du code source. Le navigateur lit et interprète ce code source, et exécute alors vos scripts (ou les garde en mémoire pour les lancer plus tard, lorsqu'un événement particulier se produit).
- Le Java, quant à lui, est compilé pour former un programme. Comme nous l'avons déjà vu, les langages compilés sont les opposés des scripts.
Si "LiveScript" (en rappel, c'est la tout première appellation du JavaScript) a pris le nom qu'on lui connaît aujourd'hui, c'est parce que Java et JavaScript ont un seul point commun : ce sont des
langages orientés objet (comme le C++ si vous connaissez, c'est pour cela qu'ils sont proches). A part cela, je le dis et je le répète, ces deux langages sont
strictement opposés !
Alors, s'il y en a un qui confond ces deux langages, ça va
chi mal se passer

!!!
Maintenant que vous savez ce qu'est le JS, direction le chapitre suivant.
Au programme :
la création de votre premier script 
!
Votre premier script
Une bonne nouvelle au programme :
on va vraiment commencer à coder en JS !
Vous allez créer votre premier script : à la fin de ce chapitre, vous serez capable d'afficher des boîtes de dialogue (contenant un message).
Rien d'impressionnant, certes, mais ces boîtes de dialogue vous seront fort utiles pour la suite...
Logiciels nécessaires
Comme j'ai pu vous le dire dans le premier chapitre, le JavaScript est un langage facile à mettre en oeuvre.
De même que pour créer une page (x)HTML, il vous suffit :
- d'un éditeur de texte : Bloc-notes est suffisant, mais d'autres logiciels offrent plus d'options, comme la coloration syntaxique, qui est très appréciable.
Notepad++ (que vous possédez peut-être déjà... ) en est un bon exemple.
- d'un navigateur : FireFox, avec le plugin Web Developer, est parfaitement approprié pour cela.
Cependant, pour vérifier la compatibilité de vos scripts, il peut être utile de les tester sur plusieurs des navigateurs les plus courants (Internet Explorer 6, Opera et Firefox étant les références pour les PC).
Liens vers les sites de
Notepad++,
FireFox et
Web Developer.
Vos débuts en JavaScript
Les commentaires
Si vous êtes un bon utilisateur du (x)HTML et du CSS (et je suis sûr que c'est le cas

), vous devriez savoir vous servir des commentaires.
Je vous rappelle que les commentaires sont des phrases qu'on utilise justement... pour commenter le code ! Elles n'ont aucune conséquence sur celui-ci.
Cela permet d'avoir un code clair et compréhensible par toute personne qui le lirait

.
Ils seront très utilisés dans la suite de ce cours.
Les commentaires, c'est comme tout, il ne faut pas en abuser : il n'est pas nécessaire de commenter chaque ligne, ça rendrait votre code lourd.
Mieux faut commenter le code par portion, en ne mettant des commentaires que lorsque vous les jugez utiles.
En (x)HTML
Les commentaires, en (x)HTML, s'écrivent de cette manière :
Code : HTML1 | <!-- je suis un commentaire -->
|
Vous pouvez donc y écrire plus ou moins ce que vous voulez, évitez cependant les caractères spéciaux (particulièrement les crochets
< et
>, le dernier pouvant être interprété par le navigateur comme la fin du commentaire).
Voici un exemple d'utilisation d'un commentaire (au milieu d'une page (x)HTML) :
Code : HTML1
2 | <!-- lien vers le site du zéro -->
<a href="http://www.siteduzero.com">Le site du Zér0 !</a>
|
En JavaScript
En JS, c'est tout à fait différent.
Il y a deux manières d'écrire un commentaire.
- Les commentaires sur une seule ligne : ils se placent sur la fin de la ligne, après // (deux slashs).
Évitez cependant d'écrire trop de choses de cette manière. Fixez-vous une limite (généralement, on prend 80 caractères maximum par ligne, code compris, mais il n'y a aucune obligation).
- Les commentaires sur plusieurs lignes : exactement comme en CSS
,
ils se placent entre /* et */ : il n'y a ici aucune limitation sur la longueur du commentaire. Vous pouvez donc en écrire autant que vous voulez.
Notez que vous pouvez parfaitement utiliser cette notation pour les commentaires courts (certaines personnes n'utilisent que celle-ci).
Un petit exemple pour vous montrer :
Code : JavaScript1
2
3
4
5
6 | duCode; // commentaire court
codeBis; /* autre commentaire court */
suiteDuCode;
encoreDuCode; /* ici, je vais mettre un commentaire long
je peux écrire autant que je veux,
sur plusieurs lignes si j'ai envie */
|
Afficher une boîte de dialogue
C'est quoi, une boîte de dialogue ?
C'est une petite fenêtre (une
boîte) qui sert à communiquer (
dialoguer) avec l'utilisateur (lui afficher ou lui demander quelque chose).
Celle que nous allons créer sert à afficher un message.
Notre boîte de dialogue
Voici le code qui permet de créer un tel message :
Code : JavaScript
Ceci est du code
JavaScript.
Si vous l'écrivez tel quel dans votre page HTML, il ne marchera pas.
Nous allons voir quelques lignes plus bas comment exécuter ce code ; lisez donc la suite avant de vous précipiter sur
Notepad++ 
.
Vous pouvez remplacer le classique "Hello world" par le texte de votre choix, en laissant les apostrophes de part et d'autre de votre message (qui doit lui-même ne pas contenir d'apostrophe).
Nous étudierons plus en détail ce code, une fois que vous saurez insérer du JS sur une page Web, autrement dit un peu plus bas sur cette page.
Où se place le code JavaScript ?
Insérer du JavaScript dans une page xHTML
On écrit le JS dans notre page HTML, et c'est le navigateur qui lit et exécute ce code.
Mais comment fait-il pour différencier les deux ?
Vous le savez sûrement déjà, un ordinateur, c'est bête : il faut lui dire tout ce qu'il doit faire.
Eh bien c'est ce que nous allons devoir faire : si on ne précise pas à notre navigateur que notre code est du JS, il ne le devinera pas tout seul.
Voyons donc comment le lui dire...
Revenons à notre JavaScript :
Il y a deux méthodes différentes pour insérer du JavaScript dans une page Web.
Directement dans les balises
La première méthode consiste à écrire le code directement
à l'intérieur de la balise qui va être concernée par le script.
Comment ça marche ?
Pour insérer le code dans une balise, une nouvelle
propriété est nécessaire. Il s'agit du
gestionnaire d'événements (en anglais :
event handler).
- Cette propriété est caractéristique du JS : elle suffit à dire au navigateur : "attention, ce qui suit est du JS".
- Elle porte le nom de l'événement qui doit déclencher le script (c'est pour cela qu'on parle de "gestionnaire d'événements").
- Elle contient comme valeur le script à exécuter lors de cet événement.
Pour résumer, la balise en question aura cette forme-là (ici il s'agit d'une balise seule, c'est le même principe pour les balises fonctionnant par paires) :
Code : HTML1 | <nom eventHandler="script" />
|
Examinons tout de suite un exemple.
- Nous allons utiliser un lien.
On ne veut pas qu'il nous envoie sur une autre page : c'est pourquoi nous utiliserons le symbole # en guise d'adresse.
On part donc de ceci :
Code : HTML
- L'événement déclenchant le script sera un clic de souris sur ce lien.
Le nom de cet événement est : onclick.
- Le script à exécuter sera l'ouverture d'une boîte de dialogue. Le code sera donc :
Code : JavaScript1 | alert('Bonjour !'); // (j'ai change le texte au passage)
|
Ça nous donne ceci :
Code : HTML1 | <a href="#" onclick="alert('Bonjour !');">lien</a>
|
Vous pouvez tester ce code (c'est même conseillé : réécrivez-le, vous le retiendrez beaucoup mieux qu'en faisant un copier-coller).
Résultat : notre boîte de dialogue devrait apparaître lorsque vous cliquez sur le lien

!
Après le on, le C de click doit être en minuscule ! Ceci est valable pour tous les gestionnaires d'événements.
S'ils sont écrits avec une majuscule, la page est invalide !
Si, même après le changement de la majuscule, rien ne se passe, votre navigateur a peut-être empêché le JS de s'exécuter.
Dans ce cas, référez-vous à l'aide de celui-ci.
Vous venez de créer votre premier script !
Maintenant, un petit exercice :
essayez de faire la même chose, mais avec une image, cette fois...
Solution :
Secret (cliquez pour afficher)Code : HTML1 | <img src="monImage.png" alt="Mon Image" onclick="alert('Pourquoi cliques-tu sur cette image ?');" />
|
Cas d'un lien :
Il est possible d'écrire du JavaScript directement à la place de l'adresse d'un lien, en le faisant précéder de
javascript:, comme dans cet exemple :
Code : HTML1 | <a href="javascript:alert('Coucou');"> Cliquez ici </a>
|
Cette méthode a l'avantage de ne pas faire remonter le visiteur en haut de la page, comme l'aurait fait un lien portant le petit dièse (
#) ; c'est ce que vous avez sûrement dû voir si vous avez testé le code.
Autres gestionnaires d'événements
Il existe d'autres événements que le clic de souris, rassurez-vous

.
Leur syntaxe est la même :
onevent,
event étant le nom de l'événement (en minuscule dans le tuto, pour respecter la validité du SdZ).
Les événements s'appliquent à la plupart des balises (sauf événements particuliers, relatifs à des balises précises).
En voici quelques-uns :
- onclick : au clic (gauche) de la souris
- ondblclick : lors d'un double clic
- onmouseover : au passage de la souris
- onmouseout : lorsque la souris "sort" de cet élément (en quelque sorte, le contraire de onmouseover).
Gestionnaires d'événements de la balise
<body> :
- onload : au chargement de la page
- onunload : lorsqu'on quitte la page (ou qu'on change de page).
Le mieux est de les essayer, vous verrez par vous-mêmes à quoi correspond chaque événement.
Voici une image contenant plusieurs gestionnaires d'événements :
Code : HTML1 | <img src="monImage.png" alt="Mon Image" ondblclick="alert('Double clic');" onmouseout="alert('La souris sort');" />
|
Et voici la balise
<body> pour créer une page disant "Bonjour" et "Au revoir" :
Code : HTML1
2
3 | <body onload="alert('Bonjour !');" onunload="alert('Au revoir !');">
<!-- corps de la page -->
</body>
|
Ce dernier exemple est typique de ce qu'il ne faut pas faire !
Une page contenant trop de JavaScript devient vite énervante, surtout dans ce type d'utilisation.
Entre les balises <script> et </script>
Une nouvelle paire de balises
Et si notre script est très long, on ne va quand même pas tout mettre dans notre gestionnaire d'événements ?
Rassurez-vous, s'il existe plusieurs manières différentes d'insérer du JavaScript, ce n'est pas pour rien.
La seconde solution consiste à écrire le script entre deux balises spécifiques,
<script> et
</script>.
Il faut commencer par préciser au navigateur que notre script est... du JavaScript.
Pour cela, on rajoute la propriété
type="text/javascript", ce qui nous donne ceci :
Code : HTML1
2
3
4
5
6 | <script type="text/javascript">
/* votre code javascript se trouve ici
c'est deja plus pratique pour un script de plusieurs lignes */
</script>
|
Mais il y a un problème !
Imaginez un vieux navigateur qui ne connaît pas le JS : s'il tombe sur cette balise, il va tout simplement l'ignorer, car elle lui sera inconnue. Mais tout le code qui suit sera considéré comme du texte, il va donc l'afficher sur votre page !
Pas très élégant

.
Il existe heureusement une solution...
Pour faire ignorer ce texte à ce vieux navigateur, on lui fait tout simplement croire qu'il s'agit
d'un commentaire en (x)HTML.
Pour un navigateur qui connaît le JavaScript, il saura qu'il n'a plus affaire à du (x)HTML, et passera donc la balise du commentaire (
<!--) sans en tenir compte.
Mais pour éviter qu'il soit déboussolé en rencontrant la balise de fin de commentaire (
-->), nous allons lui dire, en JS, qu'il s'agit d'un commentaire, grâce à
//.
Pour résumer, voici comment placer du JS dans une page en utilisant la balise
<script> :
Code : HTML1
2
3
4
5
6
7
8 | <script type="text/javascript">
<!--
/* et vous pouvez placer votre code JS ici
sans etre inquiete par les vieux navigateurs */
//-->
</script>
|
Dans l'en-tête ou dans le corps de la page (x)HTML
Ces balises, elles sont à mettre dans l'en-tête, ou dans le corps de la page ?
On peut les placer soit dans l'en-tête (
<head> ...
</head>), soit dans le corps (
<body> ...
</body>) de la page (x)HTML :
- dans le corps de la page, sont à placer les scripts à exécuter au chargement de cette dernière (lorsque le navigateur "lira" le code, il l'exécutera en même temps).
C'est ce que nous allons utiliser pour cet exemple, il suffit d'écrire le code à exécuter entre les balises ;
- en revanche, sont à placer dans l'en-tête les éléments qui doivent être exécutés plus tard (lors d'un événement particulier, par exemple).
Dans ce cas, le code n'est pas écrit "en vrac", nous apprendrons plus loin comment l'organiser.
Ce qui nous fait donc deux manières d'insérer le code grâce à ces balises.
Exemple d'application
Essayez de réaliser cet exemple : dans notre page web, on veut :
- une boîte de dialogue indiquant le début du chargement de la page (donc, le code est à placer au début du corps de la page),
- une autre indiquant la fin du chargement de celle-ci (donc, à la fin du corps).
Voici le code complet de la page :
Code : HTML 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<!-- en-tete du document -->
<title>Un exemple</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<!-- script pour le debut du chargement -->
<script type="text/javascript">
<!--
alert('Debut du chargement de la page');
//-->
</script>
<!-- ici se trouve le contenu de la page web -->
<p>
Vous testez un script...<br />
Enjoy ;)
</p>
<!-- script pour la fin du chargement -->
<script type="text/javascript">
<!--
alert('Fin du chargement de la page');
//-->
</script>
</body>
</html>
|
Vous remarquez que tant que la première boîte de dialogue est ouverte, la page n'est pas chargée.
En effet, le navigateur exécute le JS au fur et à mesure du chargement de la page : il attend donc que le script soit terminé avant de charger la suite.
Placer le code dans un fichier séparé
Importer un fichier externe
Comme pour le CSS, on peut très bien placer notre code dans un fichier indépendant. On dit que
le code est importé depuis un fichier externe. En CSS, l'extension de ce fichier (les deux à quatre lettres précédées d'un point à la fin d'un fichier) était
.css.
Vous l'avez peut être deviné, l'extension du fichier externe contenant du code JavaScript est
.js.
On va indiquer aux balises le nom et l'emplacement du fichier contenant notre (ou nos) script(s), grâce à la propriété
src (comme pour les images).
Comme il n'y a plus de code entre les balises, la technique pour masquer le code aux anciens navigateurs n'a plus lieu d'être.
Et voici ce que cela nous donne :
Code : HTML1 | <script type="text/javascript" src="script.js"></script>
|
Comme vous l'avez peut-être remarqué, il n'y a rien à écrire entre les balises
<script> et
</script>... On peut donc faire de ces balises jumelles une seule et même balise, qui sera
<script/>.
Voici donc comment importer le fichier
script.js :
Code : HTML1 | <script type="text/javascript" src="script.js" />
|
Ce même fichier qui contiendra par exemple ceci :
Code : JavaScript
Créer le fichier
Si vous ne savez pas créer un fichier ayant l'extension
.js, voici comment faire.
Avec Notepad++
- Créez un nouveau fichier avec le menu Fichier, puis Nouveau.
- Dans le menu Langage, sélectionnez... Javascript !

- Enregistrez votre fichier, en lui donnant le nom que vous voulez, suivi de .js.
- Pour ouvrir à nouveau ce fichier, clic droit, puis Open in Notepad++.
Avec Bloc-notes
- Ouvrez Bloc-notes.
- Dans le menu Fichier, choisissez Enregistrer sous...
- Dans le menu déroulant Type de la nouvelle fenêtre, choisissez Tous les fichiers (ou All types en anglais).
- Entrez le nom que vous voulez, suivi de .js.
- Pour rouvrir ce fichier, faites un clic droit dessus, Ouvrir avec... puis choisissez Bloc-notes.
Enregistrer sous... avec Bloc-notes
De quoi se compose le "code" ?
Reprenons le "code" affichant une boîte de dialogue :
Code : JavaScript
Voyons voir de quoi il se compose...
Des instructions
Qu'est-ce que c'est ?
Voici un mot important en programmation ; une petite explication s'impose donc...
Une instruction est un "ordre" que l'on donne à l'ordinateur, comme on pourrait taper "
format C:" dans sa console (
les joies de Win pour les adeptes du grand nettoyage de printemps

).
alert('Hello world'); est donc une instruction : on ordonne au script de créer une boîte de dialogue.
Un autre exemple : un calcul est une instruction.
Une grande partie de ce que vous écrirez en JS sont des instructions, mais pas tout.
Difficile de vous donner des exemples maintenant, je vous indiquerai au fur à mesure ce qui est ou n'est pas une instruction.
Séparer des instructions
Quand on donne une instruction à l'ordinateur, il faut également lui dire où est la fin de cette instruction...
Pour cela, en JS, il y a deux solutions :
- revenir à la ligne (avec la touche Entrée ou Enter) : l'ordinateur comprendra qu'il aura ensuite affaire à une autre instruction.
- utiliser un point-virgule (;) à la fin de l'instruction, comme je l'ai fait dans les exemples jusqu'ici.
Il est bien sûr parfaitement possible d'utiliser un point-virgule et un (ou plusieurs) retour(s) à la ligne...
Dans de nombreux langages de programmation (le JavaScript étant une exception), le point-virgule est obligatoire à la fin d'une instruction.
Je vous recommande donc fortement de prendre l'habitude d'en mettre un après chaque instruction.
Les fonctions
Explication
Une fonction est une suite d'instructions ayant un rôle précis. (

)
Un exemple :
Code : JavaScript
Cette fonction affiche, lorsqu'on l'
appelle (
terme à retenir), une boîte de dialogue contenant le texte entre les apostrophes (ici : 'Hello world').
Si vous êtes un peu matheux (ou si vous avez simplement suivi en cours au collège et au lycée

), le terme
fonction ne doit pas vous être inconnu... On a dit tout à l'heure qu'un calcul est une instruction. La fonction
f telle que
f(x) = 15x - 4 est une suite de calculs, donc en quelque sorte une suite "d'instructions" (par analogie avec le JavaScript, car
instruction est un terme purement informatique).
Eh bien en JS, on a, parmi beaucoup d'autres, la fonction
alert().
Rôle des parenthèses
À quoi servent les parenthèses vides que tu mets en écrivant alert() ?
Excellente question !
Revenons à notre exemple mathématique : entre les parenthèses, on précise la valeur de l'argument x.
Avec x = 5, on aura f(5) = 15*5 - 4 = 71.
C'est le même principe en JavaScript : par exemple, avec
alert(), l'argument est le texte à afficher. S'il y a plusieurs arguments, ils sont séparés par des
virgules.
On doit
obligatoirement mettre ces parenthèses, même s'il n'y a aucun argument (elles seront alors vides).
Normalement, le nom de la fonction est alert, ou f pour la fonction mathématique citée plus haut.
Employer le nom alert() est un abus de langage, mais cela permet de repérer facilement qu'on parle d'une fonction.
De nouvelles fonctions
Il y a des fonctions déjà définies en JavaScript.
On peut aussi créer nos propres fonctions ?
Bien sûr !
Il existe en effet des fonctions déjà
définies (retenez également ce terme) en JS, qu'on va donc pouvoir utiliser directement, comme notre fonction
alert(). Le navigateur va alors chercher la définition de cette fonction et l'exécuter, ce qui aura pour effet de faire apparaître notre message.
Mais il est également possible de créer nos propres fonctions (par exemple, une fonction qui convertit des euros en francs), ce sera l'objet d'un chapitre.
Vous savez désormais exécuter du code JavaScript ; attaquons donc sans plus tarder le chapitre suivant !
Le chapitre qui va suivre est capital !
Lisez-le avec attention car il introduit des notions assez complexes.
Les variables
Un ordinateur sait bien faire des calculs et des opérations en tout genre.
Mais il possède également une mémoire "infaillible" pour retenir un tas d'informations (les résultats des calculs, par exemple

) : vous allez voir dans ce chapitre qu'en Javascript, savoir utiliser cette mémoire est indispensable, ou presque...
Profiter de la mémoire de son ordinateur
En javascript, vous aurez rapidement besoin de demander à votre ordinateur de retenir des données.
Qu'est-ce que j'entends par
données ? Aussi bien des nombres que des mots, ou des phrases (et même plus). C'est ce que nous verrons un peu plus bas.
Je vous rappelle que le JS est exécuté côté client.
Un exemple : vous pouvez enregistrer l'âge d'un visiteur pour lui souhaiter un bon anniversaire le jour J (sur son PC, en enregistrant sa date de naissance).
En revanche, impossible de créer un livre d'or : on ne peut pas enregistrer les messages sur le serveur pour les rendre accessible à tous les visiteurs.
De quelle manière sont enregistrées les données ?
Peut-être vous demandez-vous comment votre ordinateur range toutes ces informations ?
Vous vous doutez bien qu'on ne fait pas un "gros tas" de données, en vrac : imaginez la galère pour retrouver ce qui nous intéresse

.
Comme vous vous en doutez, tout cela est organisé.
Illustrons un peu le fonctionnement ...
Imaginez plein de boîtes vides : c'est la mémoire de l'ordinateur.
On veut par exemple retenir le nombre 2006, mais on ne peut pas le mettre comme ça dans une boîte vide, car on ne pourra pas le retrouver !
On va donc coller une étiquette sur une boîte, pour la nommer "
annee" : on pourra donc la retrouver plus tard.
On va maintenant pouvoir y ranger le nombre 2006 à l'intérieur.
Illustration

Eh bien en JS, c'est un peu ce principe :
- la boîte porte le nom de variable.
- L'étiquette est le nom de cette variable (dans notre cas, annee).
- Le nombre 2006 est la valeur de cette variable.
Que faire avec ces données ?
Premièrement (c'est la raison pour laquelle vous les avez enregistrées

), vous allez pouvoir les
lire quand vous en aurez besoin.
Cela consiste à ouvrir la boîte, prendre l'information, l'utiliser et la remettre dans sa boîte.
Par exemple, on fait un calcul, on enregistre le résultat dans une variable, et lorsque l'utilisateur clique sur un bouton spécial, on affiche le résultat.
Pouvoir lire ces données, c'est déjà pas mal.
Mais vous aurez vite besoin de les
modifier.
Dans ce cas, on ouvre la boîte, et on remplace l'ancienne valeur par la nouvelle.
Une application (certes stupide

) : un bouton qui, à chaque clic, augmente de 1 la valeur d'une variable. Vous pouvez alors afficher le nombre de fois que le visiteur a cliqué sur ce bouton (ou "
comment occuper son petit frère pendant quelques heures"

).
Créer, lire et modifier une variable
Maintenant que vous avez compris (du moins je l'espère

) ce que c'était, voyons le fonctionnement en JavaScript.
Créer la variable
Pour créer une variable, rien de compliqué. Voici comment ça fonctionne :
Code : JavaScript
C'est une instruction, vous remarquez donc le point-virgule en fin de ligne...
nom est le nom de la variable (si vous avez aimé mon illustration, c'est ce qui est écrit sur l'étiquette collée sur la boîte).
Le terme exact n'est pas "créer" , mais
déclarer une variable.
Pour ceux qui aiment les maths, si on prend la phrase "
soit x l'âge de Toto, en années", le
var correspondrait au
soit.
(
Note : nous verrons un peu plus loin qu'il y a des cas pour lesquels on ne déclare pas une variable.
Mais retenez pour l'instant qu'il ne faut pas oublier la déclaration).
Faites attention à ne pas déclarer deux fois la même variable.
On peut donner le nom qu'on veut à nos variables ?
Eh non, ce serait trop beau

.
Le nom peut contenir les 26 lettres de l'alphabet, en majuscules et en minuscules, les 10 chiffres ainsi que le
underscore (le tiret du bas, touche 8 sur les claviers français).
Mais il ne doit pas commencer par un chiffre.
Il y a également des mots "interdits" : ils existent déjà en JS, mais pour autre chose. Si on les utilise comme nom de variable, l'ordinateur ne saura plus de quoi il s'agit.
Parmi cette liste de mots, les plus courants (pour un français) seraient "
break", "
case", "
char", "
continue", "
delete", "
double", "
final", "
long", "
new", "
public" et "
super". Les autres sont des noms anglais moins courants (je ne pense pas que vous ayez l'idée d'appeler une variable "throws"

).
Vous pourrez retrouver la liste complète en annexe.
Heureusement, ça vous laisse quand même du choix dans le nom de vos variables

.
Le JavaScript est sensible à la casse : autrement dit, il fait la différence entre lettres majuscules et minuscules.
Ainsi, nom, Nom et NOM sont trois variables différentes !
Préférez aussi un nom relativement court et explicite pour vos variables.
N'allez pas créer la variable
taratata,
hEUrE ou bien
laDateDeNaissanceDuMonsieurQuiVisiteMonNouveauSiteWeb 
.
Dans le premier cas, on ne sait pas ce que c'est, dans le second, vous risquez de vous tromper entre majuscules et minuscules, et le dernier... un peu lourd et pas très pratique à écrire !
Préférez les noms
heure et
dateDeNaissance (ou
date_de_naissance (avec des tirets) : à vous de trouver la meilleure écriture).
Notez que nous utilisons une mémoire
temporaire : les variables sont détruites lorsque le visiteur quitte la page (lorsqu'il change de page, entre autres).
Modifier la valeur d'une variable
Pour modifier la valeur d'une variable, rien de plus simple : on utilise pour cela le symbole d'affectation
= de cette manière :
Code : JavaScript1
2
3
4
5 | var annee;
var message;
annee = 2006;
message = "Bonjour, visiteur";
|
Il n'est pas obligatoire de déclarer les variables au début du code, mais ça peut vous éviter de déclarer deux fois une même variable.
Il est possible, lorsque l'on crée une variable, de lui affecter immédiatement une valeur. On dit qu'on
initialise cette variable.
Code : JavaScript1
2 | var annee = 2006;
var message = "Bonjour, visiteur";
|
Pourquoi met-on des guillemets dans la variable message ?
Car ils délimitent du texte. Je n'en dis pas plus, j'y reviendrai un peu plus bas.
On peut modifier une variable autant de fois qu'on veut :
Code : JavaScript1
2
3 | var annee = 2004; // on declare et initialise la variable
annee = 2005; // on modifie une premiere fois
annee = 2006; // puis une deuxieme fois
|
Lire une variable
Lorsque l'ordinateur trouve un nom de variable, il fait directement référence à son contenu.
Autrement dit, si j'ai une boîte nommée
annee contenant la valeur
2006, si je parle à l'ordinateur de
annee (sans guillemets), il ira chercher la valeur contenue par cette boîte.
Un exemple sera plus simple : reprenons nos alertes.
Code : JavaScript1
2 | var annee = 2006;
alert(annee);
|
ce qui affichera "2006"...
Remarquez l'absence de guillemets : en effet, on ne veut pas afficher le texte "annee", mais le contenu de cette variable.
Alors maintenant, on ne doit pas mettre de guillemets lors des alertes ?!
Je n'ai jamais dit ça : voyons plutôt quand les utiliser.
Les chaînes de caractères
"Chaîne de caractères", un nom au premier abord un peu barbare ...
Ce n'est en fait pas bien méchant.
En anglais :
string (je ne le dit pas pour le "jeu de mot" d'une finesse sans égale, mais parce que, tôt ou tard, vous en entendrez parler).
C'est une suite de caractères (un caractère est une lettre, un chiffre, un espace, un tiret...) qui a un ordre précis.
Dit autrement, ce sont des caractères mis bout-à-bout.
Cela forme donc... du texte ! (Dit comme ça, c'est tout de suite plus simple

.)
C'est un
type de donnée, au même titre qu'un nombre.
Une sous-partie entière pour nous parler du texte ?
Eh oui, vous verrez qu'il y a des choses à dire...
Délimiter une chaîne de caractères
Vous vous dites peut-être : "c'est facile, il suffit d'écrire le texte après le signe
= pour enregistrer du texte dans une variable".
Que nenni !
Et cela pour plusieurs raisons : tout d'abord, comment l'ordinateur saurait où se trouve le début et la fin de votre texte ? (Le point virgule en fait-il partie, ...)
Deuxièmement, l'ordinateur analysera le type de données : est-ce que ce sont des variables ? Des chiffres ?
Il va donc falloir dire à l'ordinateur : "ceci est une chaîne de caractères, n'essaie pas de comprendre".
Et pour cela, on utilise indifféremment les guillemets
" (dits "
double quotes") ou les apostrophes
' (dites "
simple quotes") : ils délimitent la chaîne de caractères, un peu comme une citation.
Pourquoi deux types de guillemets ?
Car le JavaScript peut être placé directement dans une balise (x)HTML (rappelez-vous du
onclick) : dans ce cas, on ne peut pas mettre de
double quotes (ils sont déjà utilisés en (x)HTML pour délimiter le script). On utilise donc les
simple quotes.
Un exemple :
Code : HTML1 | <img src="monImage.png" alt="" onclick="alert('Bonjour');" />
|
Voyons quelques exemples (avec les variables) :
Code : JavaScript1
2
3
4
5
6
7 | // deux chaines de caracteres
var message1 = 'Une autre chaine de caracteres';
var message2 = "C'est une chaine de caracteres ...";
// maintenant, on les affiche
alert(message1);
alert(message2);
|
Caractères spéciaux et d'échappement
Et si je veux mettre des guillemets à l'intérieur de ma chaîne, qui est délimitée par des guillemets ?
Et comment je fait un saut de ligne ?
Tout d'abord, les guillemets.
Ceci ne marchera pas, car les guillemets servent à délimiter la chaîne :
Code : JavaScript1
2 | var message = "Ceci est un "petit" test";
alert(message);
|
Il faut dire à l'ordinateur que les guillemets du milieu sont des caractères normaux, et non pas les délimiteurs.
Pour cela, on utilise ce qu'on appelle un caractère d'échappement : on fait précéder le guillemet à afficher d'un
\ (
antislash, touches
Alt Gr +
8 pour les claviers français,
Alt Gr +
< pour les belges).
Et pour afficher un antislash... on le fait précéder d'un antislash aussi

.
Code : JavaScript1
2
3
4
5 | var message1 = "Ceci est un \"petit\" test. Mais pas besoin d'antislash \\ devant les apostrophes.";
var message2 = 'Un autre "petit" test. Cette fois, il faut penser à l\'antislash devant les apostrophes';
alert(message1);
alert(message2);
|
Les caractères spéciaux
On peut également insérer des retours à la ligne (qu'on ne peut pas insérer simplement en appuyant sur la touche
Enter), ainsi que des tabulations ou autres.
Voici les caractères spéciaux les plus courants :
- \n qui insère un retour à la ligne.
- \t pour insérer une tabulation (ne marche pas dans tous les cas)
- \b pour insérer un backspace (comme si vous appuyez sur la touche "retour arrière", celle au-dessus de Enter qui permet d'effacer le dernier caractère).
- \uXXXX pour insérer le caractère donc la valeur unicode est XXXX (cette valeur est un nombre en hexadécimales).
Vous pouvez trouver la liste de ces caractères avec leur valeur sur cette page wikipédia.
Un exemple (cela signifie "Bonjour ! - Comment vous appelez-vous ?" en allemand. Je l'ai pris pour le caractère spécial) :
Code : JavaScript1 | alert("Gutentag !\nWie hei\u00DFen Sie ?");
|
La concaténation
Concaquoi ?!

Pas de panique, encore un mot compliqué pour quelque chose de simple.
Partons d'un "exercice" : on a une variable
age qui contient ... l'âge du visiteur (si, si !).
On veut afficher un message annonçant : "Vous avez XX ans" (XX est l'âge).
Immédiatement, vous m'écrivez ceci :
Code : JavaScript1 | alert("Vous avez age ans");
|
Et, ô déception, vous voyez s'afficher "Vous avez age ans".
Pour faire cela, on va en fait mettre bout-à-bout nos 3 morceaux de chaîne (le premier morceau est "Vous avez ", ensuite la variable
age, et enfin " ans", sans oublier les espaces après "avez" et avant "ans").
Concaténer, c'est en fait "mettre bout-à-bout" plusieurs chaînes de caractères pour n'en former qu'une seule.
Comment faire ? On utilise simplement le symbole de concaténation
+ entre chaque morceau (pour ceux qui connaissent, en php, c'est le point qui est utilisé), comme ceci :
Code : JavaScript1
2 | var age = 18; // on cree la variable pour pouvoir tester
alert("Vous avez " + age + " ans"); // on affiche les chaines mises bout-à-bout
|
(On aurait aussi pu créer une variable
message contenant la chaîne concaténée, et l'afficher ensuite.)
Demander une chaîne de caractère au visiteur
Vous avez peut-être envie de tester ce code, mais avec une variable
age contenant l'âge qu'on aura demandé au visiteur ?
Voyons une première façon de le lui demander.
Vous vous souvenez sûrement de nos
alert("message"); affichant un message dans une boîte de dialogue.
Eh bien il existe un moyen très proche (encore une boîte de dialogue) pour demander au visiteur de saisir son âge.
Une boîte de dialogue demandant au visiteur de saisir un texte

Code : JavaScript1 | var age = prompt("Texte d'invite");
|
Entre les parenthèses, on met une chaîne de caractères (comme pour
alert) qui sera affichée au-dessus du champ pour saisir son texte.
On récupère la chaîne de caractères dans la variable
age (notez que si elle a déjà été déclarée, on ne met pas le
var devant).
Voici un exemple complet (que je vous conseille de réaliser) : on demande l'âge du visiteur pour le lui afficher ensuite (dans une phrase).
Ce qui nous donne ceci :
Code : JavaScript1
2 | var age = prompt("Quel âge avez-vous ? (en années)"); // on demande l'age
alert("Vous avez " + age + " ans"); // on affiche la phrase
|
Vous savez maintenant écrire... apprenons donc à compter

.
C'est vrai, après tout, un ordinateur n'est rien d'autre qu'une espèce de grosse machine à calculer.
Les nombres
Un autre type de variable
Les nombres, au même titre que les chaînes de caractères, sont un
type de variable.
Comme ce sont des nombres (l'ordinateur sait compter), on ne met pas de guillemets : l'ordinateur va "comprendre" qu'il s'agit d'un nombre, et va l'enregistrer à sa manière (et non pas bêtement chiffre par chiffre, comme il l'aurait fait avec une chaîne de caractères).
Ils se classent en deux catégories :
- les nombres entiers : ce sont des valeurs exactes ;
- les nombres à virgule (les entiers très grands - beaucoup plus qu'un milliard - rentrent dans cette catégorie) : il faut garder à l'esprit que ces valeurs ne sont pas toujours exactes !
Pourquoi ? Car il se peut que certains nombres décimaux (avec un nombre fini de chiffres, comme 0,2) ne se "terminent pas" pour l'ordinateur (un peu comme 1/3 ne se termine pas).
D'où cette imprécision.
Notez tout d'abord qu'on n'utilise pas la virgule, mais le point.
On écrira par exemple 3,14 3.14.
Un petit exemple :
Code : JavaScript1
2 | var nombre = 1.234;
alert(nombre);
|
Des nombres pour calculer
Comme vous le savez, avec des nombres... on peut faire des calculs. Eh oui, le JavaScript, c'est parfois aussi des maths

.
L'ordinateur est particulièrement doué pour ces calculs...
Voici les opérateurs de base :
- + (addition), exemple : 52 + 19 = 71
- - (soustraction), exemple : 52 - 19 = 33
- * (multiplication), exemple : 5 * 19 = 95
- / (division), exemple : 5 / 3 = 1,666...667 (une petite vingtaine de "6")
- % (modulo) : ici, quelques explications s'impose.
a % b (si b est positif, ce qui est le cas dans presque toutes les applications) est le reste de la division de a par b.
Exemple : 52 % 19 = 14 (car 52 = 19*2 + 14)
Allons faire quelques exercices d'application...
Un programme qui demande deux nombres et qui en affiche le quotient (qui effectue une division, si vous préférez).
A vos claviers

.
Correction...
Secret (cliquez pour afficher)Code : JavaScript1
2
3
4
5
6
7 | // on demande les nombres
var nombre1 = prompt('Premier nombre ?');
var nombre2 = prompt('Deuxieme nombre ?');
// on calcule le quotient et on l'affiche
var resultat = nombre1 / nombre2;
alert("Le quotient de ces deux nombres est " + resultat);
|
Notez qu'on aurait pu afficher directement le résultat, sans créer une variable pour celui-ci. On aurait alors mis le calcul à la place du nom de la variable dans le message à afficher.
Cas particuliers
Peut-être avez-vous essayé de faire planter le truc (le genre de truc que j'adore m'amuser à faire

).
Voici les messages que vous avez pu obtenir :
- si vous entrez "0" en deuxième nombre (division par 0 impossible...) : le résultat sera "Infinity" ou "-Infinity" (l'infini, positif ou négatif).
- Si vous avez entré du texte, vous obtenez un joli "NaN".
Ça ne veut pas dire "Nan, fais pas ça !" (bah quoi, ça aurait pu ?
).
NaN signifie Not a Number ("Pas un nombre") : c'est un message que vous serez sûrement amenés à rencontrer ...
Nombres et chaînes de caractères
Vous vous demandez comment convertir un nombre en chaîne de caractères, ou inversement ?
Chaîne --> nombre
Sachez que dans la plupart des cas, la conversion est faite au-to-ma-ti-que-ment.
Un exemple ? Dans votre script de division (quelques lignes plus haut), on demande en fait au visiteur non pas un nombre, mais une chaîne de caractères. Mais lorsque vous demandez à diviser, l'ordinateur sait qu'il ne peut pas les diviser. Il va donc essayer de les convertir en nombre (c'est là qu'il vous sort le fameux "
NaN" s'il n'arrive pas à effectuer cette conversion).
Une preuve ? Essayez le même script, mais avec une addition...
L'ordinateur va croire qu'il doit concaténer ces deux chaînes.
Résultat : en tapant "8" et "12", on obtient... 812 !
Mais comment je fais pour mon script de calculatrice, alors ?!
Rassurez-vous, il est fort heureusement possible d'effectuer "manuellement" cette conversion, grâce à
parseInt(chaine_a_convertir) (convertir en un nombre entier) et à
parseFloat(chaine_a_convertir) (convertir en un nombre décimal).
Si la conversion échoue, on obtient un "NaN".
Quelques exemples vous montrant la souplesse de ces fonctions :
- parseInt("12.9 Euros") vaudra 12 (on convertit en entiers, les chiffres après la virgule sont ignorés)
- parseInt(" 12 Frs ") vaudra également 12 (l'espace en début de chaîne est ignoré)
- parseInt("J'ai 12 Euros") vaudra Nan (la chaîne commence par une lettre)
- parseFloat(" 12.9 Frs ") vaudra 12.9
- parseFloat("3,14") vaudra... 3 : il faut utiliser le point et non la virgule. La conversion va donc s'arrêter après le "3".
Voici le script de division transformé en script d'addition :
Code : JavaScript1
2
3
4
5
6 | var nombre1 = prompt('Premier nombre ?');
var nombre2 = prompt('Deuxieme nombre ?');
// on convertit en nombres decimaux et on calcule
var resultat = parseFloat(nombre1) + parseFloat(nombre2);
alert("La somme de ces deux nombres est " + resultat);
|
Nombre --> chaîne
Idem, cette conversion se fait automatiquement (lorsque l'on affiche un nombre au milieu de texte, il le convertit pour le concaténer ensuite).
Si vraiment vous avez besoin d'effectuer manuellement cette conversion (par exemple en voulant afficher deux nombres les uns derrière les autres), vous pouvez ajouter des '' (deux apostrophes).
En ajoutant une chaîne entre ces nombres, l'ordinateur sera forcé de les concaténer.
Exemple :
Code : JavaScript1
2
3 | var nombre1 = 8;
var nombre2 = 12;
alert(nombre1 + '' + nombre2);
|
Priorités de calcul
Ces opérateurs se rangent en deux catégories :
- la première est composée des multiplications (*), division (/) et modulo (%)
- la seconde regroupe addition (+) et soustraction (-).
- Tout d'abord, les opérations de la première catégorie sont effectuées de gauche à droite.
- Ensuite (il ne reste donc que des additions et soustractions, les autres calculs sont déjà effectués), le calcul se fait de gauche à droite.
S'il y a des parenthèses, on effectue le calcul entre celles-ci en priorité, suivant ces règles.
Un exemple : calcul étape par étape (en bleu, le calcul à effectuer ; en gras, le résultat du calcul précédent) :
- 15 - 7 * 6 % 2 + 3 (catégorie 1, de gauche à droite)
- 15 - 42 % 2 + 3 (idem)
- 15 - 0 + 3 (ne reste que la catégorie 2 : de gauche à droite)
- 15 + 3 (idem)
- 18.
D'autres opérateurs pour simplifier l'écriture
Certains calculs reviennent régulièrement.
Parmi ceux-ci, on peut citer ceux du genre :
Code : JavaScript1 | resultat = resultat + X; // on ajoute X à la variable resultat
|
Il existe l'opérateur
+= s'utilisant comme ceci :
Code : JavaScript1 | resultat += X; // on augmente la valeur de resultat de X
|
Ces deux lignes sont strictement équivalentes.
Il existe, de la même manière, les opérateurs
-= (on retranche la valeur de la deuxième variable à celle de la première),
*= (on multiplie la valeur de la première variable par celle de la deuxième),
/= (idem mais avec une division) et
%=.
Incrémentation / décrémentation
Lorsque l'on veut augmenter de 1 la valeur d'une variable (on dit
incrémenter), par exemple pour un compteur, on utilise la notation :
Code : JavaScript
De même, pour
décrémenter (diminuer la valeur de 1) une variable, le code est le suivant :
Code : JavaScript