JavaScript Flashcards

(46 cards)

1
Q

Qu’est-ce qu’un package manager ?

A

C’est un outil automatisant les processus d’installation, désinstallation et mise à jour de logiciels installés sur un système informatique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Citer des exemples de package manager.

A

npm, yan, pnpm, dino, bun

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qu’est ce qu’un Runtime JS ?

A

C’est un environnement qui fournit tous les composants nécessaires pour utiliser et exécutCiter des programmes JS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Citer des exemples de Runtime JS.

A

node, dino, bun

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles sont les conventions de nommage en JS ?

A
  • kebab case pour un nom de fichier
  • camel case pour une fonction/variable
  • upper case pour les constantes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quelle est la différence entre let et const pour déclarer une variable ?

A

const empêche la réassignation de la variable, let le permet. Les deux ont une portée de bloc {}.

ATTENTION : var est l’ancienne notation à ne plus utiliser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment écrit-on un commentaire en JS ?

A

// commentaire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelle est la syntaxe pour concaténer une chaîne de caractère ?

A

let variable = “Hello” + “ “ + “world”;

Version optimisée avec variables déclarées plus tôt :
const hello = ‘${hello} ${world}’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment afficher quelque chose dans la console ?

A

console.log(“coucou”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quelles sont les syntaxe pour déclarer une condition ?

A

if (true) {
//execution
} else if (false) {
//execution
} else {
//execution
}

switch (myVar) {
case “1”:
console.log(“ok”);
break;
default :
console.log(“default”);
}

IMPORTANT : il faut utiliser un switch si au moins 3 if/else.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelle est la différence entre == et === ?

A

== compare les valeurs avec conversion de type, === compare la valeur et le type (strict). Toujours privilégier ===.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quelles sont les falsy value ?

A

”” / 0 / null / undefined / false

console.log (myVar || “–NC–”); -> si falsy value, –NC–

console.log (myVar ?? “–NC–”); -> –NC– uniquement si null ou undefined

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce qu’une fonction anonyme et quelles est sa syntaxe ?

A

const main = function () {
console.log(“test”);
};

Cette fonction sans nom peut être appelée par le nom de la variable main().

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce qu’une fonction fléchée (ou lambda) et quelles est sa syntaxe ?

A

Une fonction fléchée est une fonction anonyme raccourcie.

const main = () => {
let maVar = “test”;
return maVar;
};

s’écrit aussi :
const main = () => “test”;

puis on peut faire : console.log(main());

Si 0 ou plusieurs paramètres -> () obligées
Si une seule ligne de code -> {} omis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Comment déclare-t-on un tableau et quels sont les principales formule pour le modifier ?

A

Déclaration d’un tableau : const tab = [1,2,3];
Ajout d’une valeur à la fin : tab.push(4);
Ajout d’une valeur au début : tabl.unshift(0);
Suppression de la dernière valeur : tab.pop();
Suppresion de la première valeur : tab.shift();
Récupérer la valeur retirée du tableau : const val = tab.pop();
Accéder à la valeur de position i : tab[i]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qu’est-ce qu’une fonction pure ?

A

C’est un fonction qui ne modifie pas les valeurs passées en paramètre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quels sont les syntaxes pour parcourir un tableau ?

A

Parcours des éléments d’un tableau :
for (const el of tab) {
console.log(el);
}

Parcours des index d’un tableau :
for (const index in tab) {
console.log(index);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Quelle fonction permet d’exécuter du code sur chaque élément d’un tableau ?

A

tab.map()

Cette fonction crée un nouveau tableau -> fonction pure

ex : tab.map( (n) => n*2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Quelle fonction permet de filtrer les éléments d’un tableau ?

A

tab.filter

Cette fonction crée un nouveau tableau -> fonction pure

ex : tab.filter( (el) => el % 2)

19
Q

Quelle fonction permet de transformer un tableau multidirectionnel et un tableau unidirectionnel ?

A

tab.flat()

ATTENTION : cette fonction diminue les direction de 1 seulement.

20
Q

À quoi sert la méthode .reduce() et quels sont ses 3 paramètres de rappel (callback) ?

A

Elle sert à “réduire” un tableau à une seule valeur (un nombre, une chaîne, un objet ou même un nouveau tableau) en accumulant les résultats.

Les 3 paramètres du callback sont :

  • Accumulateur (acc) : La valeur précédemment retournée (ou la valeur initiale au premier tour).
  • Valeur Courante (cur) : L’élément du tableau en cours de traitement.
  • valeurInitial : valeur par défaut.

Syntaxe :
tableau.reduce((acc, cur) => acc + cur, valeurInitiale)

21
Q

À quoi sert le Spread Operator (…) et quels sont ses deux cas d’usage principaux ?

A

Il sert à “étaler” ou “déballer” les éléments d’un itérable (tableau ou objet) dans un nouveau contenant.

Ses deux usages principaux sont :

  • Copier : Créer une copie d’un tableau ou d’un objet pour éviter de modifier l’original par référence.
  • Fusionner : Combiner plusieurs tableaux ou objets en un seul de manière simple.

Exemples :
const newTeam = […oldTeam, newPokemon];
const updatedPokemon = { …pokemon, hp: 100 };

22
Q

Que fait cette variable : const [top1, top2, …leReste] = [19, 15, 14, 12, 10] ?

A

Elle déstructure un tableau.
Nous pouvons par la suite faire ceci :
console.log(top1); // 19
console.log(leReste); // [14, 12, 10]

23
Q

A quoi sert la fonction .slice() ?

A

Elle permet de récupérer des valeurs d’un tableau à l’intérieur d’un rang.

ex : tab.slice(0, 8) récupère les valeurs de l’index 0 au 8ème index.

24
Comment déclare-t-on un objet plat ?
const myObj = { name : Doe, age : 28, }
25
Comment récupère-t-on la valeur d'une clé d'un objet ?
myObj.name permet de récupérer la valeur de name dans l'objet myObj. myObj.name = myObj['name'] ATTENTION : si la clé peut être undefined, il faut mettre un ? ex : myObj.name?
26
Quelles sont les formules pour traiter un objet ?
Object.keys(myObj); -> récupère toutes les clés de l'objet Object.values(myObj) -> récupère toutes les valeurs de l'objet Object.entries(myObj) -> réalise un tableau de tableau avec l'objet = keys + values
27
A quoi sert TypeScript ?
TypeScript a pour but d'améliorer et de sécuriser la production de code JavaScript, notamment en typant les éléments.
28
Comment déclare-t-on une interface ?
Une interface est utilisée pour définir la forme d'un objet. interface Person { name : string; firstName : string; adress? ; { primary : string; zipCode : string; } } ATTENTION : on utilise des ; au lieu des , du JavaScripte. ? permet de rendre l'élément facultatif.
29
Comment instancier une onterface ?
const me : Person = { name : "Doe, firstName : "Jane" } ATTENTION : ici on utilise des ,
30
Comment déclare-t-on une énumération ?
enum BirthSex { Male = "male", Female = "female", Other = "other", } Puis dans un objet, on peut utiliser l'énumération : birthSex : BirthSex.Male
31
Comment déclare-t-on une fonction en TypeScript ?
function myFunc (birthSex : BirthSex) : string : BirthSex = typage du paramètre : string = typage de la valeur de retour
32
À quoi sert le mot-clé as (ex: as HTMLInputElement) et quand faut-il l'utiliser ?
C'est une assertion de type. Elle permet de dire à TypeScript : "Je sais mieux que toi quel est le type de cet élément". On l'utilise principalement lors de la récupération d'éléments du DOM, car document.getElementById renvoie par défaut un type générique HTMLElement qui n'a pas de propriété .value. Exemple : const input = document.getElementById('search') as HTMLInputElement;
33
Qu'est-ce qu'une fonction async ?
Une fonction qui renvoie toujours une Promise et permet d'utiliser le mot-clé await à l'intérieur.
34
Qu'est-ce qu'une fetch ?
Une fonction JS permettant de faire des requêtes HTTP pour récupérer des données (JSON). const result = await fetch('url'); const data = await result.json();
35
Comment récupère-t-on un élément du DOM ?
document.getElementById("") -> récupère l'élément contenant l'Id docuemnt.getElementByClassName("") -> récupère le premier élément contenant la classe document.querySelector("") -> récupère le premier élement correspondant ([attribut], .class, #id) document.querySelectorAll("...") -> récupère tous les éléments et renvoie une node list
36
Comment créer un élément ?
document.createElement("")
37
Comment modifier les attributs d'un élément ?
baliseCree.setAttribut("", ") -> modifie l'attribut ou le crée s'il n'existe pas baliseCree.url = "..." -> affecte l'attribut url à la balise avec sa valeur baliseCree.classList.add("nouvelleClass") -> ajoute une classe baliseCree.classList.remove("nomClassARetirer") -> retire une classe
38
Comment insérer un élément dans la page ?
let parentElement = document.getElementById("container"); parentElement.appendChild(nouvelElement); IMPORTANT : il existe d'autres méthodes comme prepend, before, insertAdjacentElement Si de nombreux éléments à ajouter : let div = `

${contenuTitre}

${contenuPara}

`; parentElement.innerHTML = div;
39
À quoi sert addEventListener ?
À attacher un écouteur d'événement (clic, input, submit) sur un élément HTML. ex : monBouton.addEventListener( "click", () => { console.log("Vous avez cliqué"); }
40
Comment récupère-t-on les informations sur un évènement ?
event.target -> renvoie l'élément HTML qui a déclenché l'évènement event.key -> renvoie la touche appuyée lors de l'évènement event.clientX et event.clientY -> renvoie les coordonnées de la souris lors de l'évènement
41
Comment récupérer une interface, fonction ou variable d'un autre module (page) ?
On utilise export devant l'interface/fonction/variable pour les rendre accessible depuis l'extérieur. Puis en haut de notre fichier, on déclare import {} from "./monFichier.ts";
42
Qu'est-ce qu'un Web Component ?
Une balise HTML personnalisée (ex: ) réutilisable avec sa propre logique.
43
Comment déclare-t-on un web-component ?
class MyComponent extends HTMLElement { constructor() { super(); } } customElement.define('ma-balise-perso', MyComponent);
44
À quoi sert localStorage ?
À stocker des données dans le navigateur qui persistent même après avoir fermé l'onglet.
45
Comment stocker des données dans le localStorage et les récupérer ?
localStorage.setItem("clé", "valeur"); -> crée un élément dans localStorage localStorage.getItem("clé") -> récupère un élément du localStorage IMPORTANT : le localStorage ne peut stocker que des chaînes de caractère. localStorage.setItem("pokemon", JSON.stringify(myArr)); -> stocke un tableau sous forme de chaîne JSON.parse(localStorage.getItem('pokemon') -> récupère l'élément et le remet sous forme de tableau localStorage.removeItem('pokemon') -> supprime la clé/valeur du localStorage