JavaScript

Remi Forax

JavaScript ?

“JavaScript is a high-level, dynamic, untyped, and interpreted programming language. JavaScript is prototype-based with first-class functions, making it a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles”

source: Wikipedia.org - JavaScript

JavaScript ?

“JavaScript est un language de programmation de haut niveau, dynamique, non typé et interprété. JavaScript est basé sur la notion de prototypes avec des fonctions vues comme des valeurs, qui en font un langage multi-paradigme supportant les styles de programmation impératif, fonctionel et objet”

source : Wikipedia.org - JavaScript

Historique des versions

ECMAScript 1/2/31997/1998/1999
ECMAScript 4Abandonné
ECMAScript 5/5.12009/2011
ECMAScript 62015
ECMAScript 20212021
Le nom du langage strandardisé est ECMAScript, pas JavaScript !

Variable

Une variable locale se déclare avec le mot-clef let.

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 '$'.

On peut aussi déclarer une variable avec 'const' et 'var' mais on verra plus tard.

Variable non déclarée

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

 

Variable déclarée deux fois

On ne peut pas déclarer une variable deux fois

 

Variable non initialisée

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

 

Commentaire

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

 

Types de base

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

Il y a d'autres types pour les tableaux, les dictionnaires (ou objets)
et les fonctions que l'on verra plus tard.

Opérateurs arithmétique

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

 

Les nombres sont toujours des nombres à virgule flottante,
si le nombre est un entier le .0 est pas affiché

Opérateurs de test

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

 

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

Calcul sur les flottants

Le calcul sur les flottants est 'sécurisé', pas d'erreur

 

 

Not a Number (NaN) est bizarre !
il n'est pas égal à lui-même

Calcul sur les flottants (2)

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

 

 

Ne pas utiliser == ou != sur des flottants

Opérateurs booléens

Les opérateurs && et || permettent
de tester plusieurs conditions

 

Opérateurs d'égalité

== et != sont définies 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

 

Interpolation de chaînes de caractères

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

 

Contrôle du flux d'instructions

Exécution conditionnelle

if permet de demander d'exécuter un morceau de code sous certaines conditions

Exécution conditionnelle (2)

if ... else permet de demander d'exécuter un morceau de code différent dans chaque cas.

 

Expression conditionnelle

L'opérateur ?: permet de faire un if entre des expressions.

 

&& et || sont paresseux

si la partie gauche d'un && est false, la partie droite est pas évaluée.
si la partie gauche d'un || est true, la partie droite est pas évaluée.

 

Boucle While

while permet de répéter l'exécution d'un morceau de code (avec des valeurs différentes)

 

Boucle For

for permet de répéter l'exécution d'un morceau de code sans oublier l'incrémentation

 

Boucle For et initialisation

Il est possible de faire l'initialisation à l'intérieur du for

 

Break

break permet d'arrêter une boucle (return aussi)

 

Continue

continue saute le tour de boucle courant et passe à l'incrémentation suivante

 

Incrémentation

JavaScript emprunte la syntaxe du C pour les incrémentations

  • i++ correspond à i = i + 1
  • i-- correspond à i = i - 1
  • i += 2 correspond à i = i + 2
  • i -= 2 correspond à i = i - 2

 

Pré et Post-Incrémentation

i++ (resp. i--) renvoie la valeur de i puis incrémente
++i (resp. --i) incrémente puis renvoie la nouvelle valeur de i