Aller au contenu

Langage JavaScript

Programme de l'épreuve d'étude de cas de l'Agrég

La présente annexe liste limitativement les éléments du langage JavaScript (7e édition du standard ECMA-262). Ces éléments s’inscrivent dans la perspective de lire et d’écrire des éléments de code javascript intégrés à des documents HTML. Aucun concept sous-jacent n’est exigible au titre de la présente annexe.

Traits et éléments techniques à connaître

Les éléments et notations suivants du langage JavaScript doivent être compris et utilisés par les étudiants sans faire l’objet d’un rappel, y compris lorsqu’ils n’ont pas accès à un ordinateur.

Traits généraux

  • Typage dynamique.
  • Passage par valeur.
  • Délimitation des portées : par bloc pour let.
  • Gestion de la mémoire : pile et tas, garbage collector.
  • Retours à la ligne significatifs (automatic semicolon insertion) ; on privilégiera l’emploi du point- virgule.

Définitions et types de base

  • Quatre types primitifs à considérer :
    • boolean (true / false). Opérateurs !, &&, ||.
    • number (virgule flottante double précision). Opérateur +, ++, -, --, *, / (point d’attention avec NaN).
    • string (chaîne de caractères UTF-16).
    • undefined.
  • Opérateurs de comparaison ==, <, >, <=, >=, === (égalité stricte).
  • Définition de constantes (const), de variables (let).
  • Définition de fonctions function nom(param) { . . . }. Les paramètres non passés sont initialisés à undefined.

Types structurés

  • Tableaux : let t = [a, b, c] ; lecture et écriture d’un terme de tableau par son indice t[i] ; fonctions length, push, pop, forEach.
  • Objet : let obj = { "nom_a" : valeur _a, "nom_b" : valeur _b } ; lecture et écriture d’une propriété par son nom : obj.nom_a. Absence de valeur : undefined.

Structures de contrôle

  • Conditionnelles : if (c) s et if (c) s else s'
  • Boucles : while (c) s et for (init ; fin; incr ) s

Éléments techniques devant être reconnus et utilisables après rappel

Manipulation des objets du DOM

  • Objets du DOM (par exemple Document, Node, Element, NodeList, HTMLCollection)
  • Requêtes sur le DOM (par exemple document.getElementById(), document.querySelector(), document.querySelectorAll())
  • Lecture / écriture du DOM :
    • en utilisant les propriétés et attributs IDL (pour Interface Description Language, par exemple id, src, value, style, innerHTML),
    • en utilisant les méthodes (par exemple createElement(), createTextNode(), getAttribute(), setAttribute(), appendChild()).

Réaction aux événements DOM

  • Les événements : l’objet Event, propagation des événements dans le DOM.
  • Gestionnaire d’événements : notamment addEventListener(), removeEventListener().

Asynchronisme et requêtes HTTP

  • Principes : Code bloquant, Mono Thread, Fonction de callback.
  • Programmation Asynchrone notamment avec async et await.
  • Envoi de requêtes http (POST et GET) (par exemple avec la fonction asynchrone fetch() ou XMLHttpRequest()).