JavaScript

Raconté par Vincent Jugé
sur la base d'un cours créé par Rémi Forax

Historique des versions

ECMAScript 1/2 1997/1998
ECMAScript 3 1999
ECMAScript 4 Abandonné
ECMAScript 5 2009
ECMAScript 5.1 2011
ECMAScript 6 2015
ECMAScript 15 2024
Le nom du langage strandardisé est ECMAScript, pas JavaScript !

Pour bien démarrer…

Mode strict

Dans le mode par défaut (pas strict)

  • pas d'erreur si une variable n'est pas déclarée
  • possibilité de supprimer une déclaration avec delete
  • 010 n'est pas égal à 10
  • etc.

ce qui est stupide !

La première ligne du fichier doit être


"use strict";

Commentaire

Il y a deux formes de commentaires : // et /* */


// le commentaire sur une ligne
// 3
/*
   le commentaire sur plusieurs lignes
*/

Constantes et variables

Variable

Une variable locale se déclare avec le mot-clé let.
Il existe aussi un mot-clé var, mais on évitera à tout prix de s'en servir.
Il y a également un mot-clé const que l'on verra très bientôt.

Une variable peut être initialisée en même temps que la déclaration ou plus tard.

Le nom d'une variable est composé de lettres, '_', '$', et chiffres (sauf en première position).
La définition précise de l'ensemble des noms autorisés est plus compliquée.

Instruction et ;

On termine toujours une initialisation/déclaration par un ';'.
La syntaxe d'ECMAScript est ambiguë si on omet les  ';'.

L'indentation est optionnelle mais fortement recommandée.

Variable non déclarée

Si on oublie de déclarer une variable, le programme plante !



Si on tente d'utiliser une variable avant de la déclarer, le programme plante aussi !


Variable non initialisée

Une variable locale non initialisée a la valeur undefined.

Constante

Une constante locale se déclare avec le mot-clé const.
Une constante est une variable qui ne varie pas.

Une constante doit être initialisée en même temps que la déclaration, et sa valeur ne peut pas changer.

On peut bien sûr n'utiliser que le mot-clé let, mais c'est moins sympa pour le lecteur qui croira que notre variable a vocation à varier.

Opérations de base

Types de base

Il existe trois types de base : number, boolean et string.
L'opérateur typeof permet d'obtenir le type à partir d'une valeur.

Il y a aussi deux autres types : object et function.

Opérateurs arithmétiques

Les opérateurs classiques +, -, *, /, % sur les number :

Les nombres sont soit des entiers,
soit des nombres à virgule flottante.

Calcul sur les flottants

Les résultats d'un calcul sont arrondis au
flottant le plus proche.

Il y aura toujours des erreurs d'arrondi  !

Opérateurs de test

Les opérateurs de tests ==, !=, <, <=, >, >= sur les number :

true (vrai) et false (faux) sont des valeurs prédéfinies.

Tests, flottants et types

Ne jamais faire des tests d'égalité sur des flottants :

Ne jamais faire des tests d'égalité sur des objets de types différents :

Opérateurs booléens

Les opérateurs && (ET) et || (OU) permettent
de tester plusieurs conditions.
L'opérateur ! (NON) permet d'inverser une condition.

Opérateurs d'égalité

== et != sont définis pour tous les types, avec plus ou moins de bonheur si les types sont différents.

=== et !== testent d'abord que le type est identique !

Concaténation de chaînes de caractères

Le + fait la concaténation si l'opérande à gauche ou à droite est une string.

Cela permet d'insérer une expression dans une chaîne de caractères.

Interpolation de chaînes de caractères

Les anti-quotes (`) permettent de définir une chaîne de caractères contenant des expressions.
${...} introduit une expression.