JavaScript : variables, types et égalité
let, const et var avec leur portée, les types primitifs et typeof, les conversions implicites, == face à === et les valeurs fausses.
- 24 cartes
- 3 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
Quelques cartes du deck
let et const : de quoi s'agit-il ?
Voir la réponse
Les deux déclarations modernes de variable, limitées au bloc où elles sont écrites ; la première autorise de réaffecter, la seconde l'interdit.
constfige le lien entre le nom et la valeur, pas le contenu :const t = []; t.push(1)fonctionne,t = []provoqueTypeError: Assignment to constant variable.Qu'affiche ce programme ?
```javascript
console.log(typeof (1 + '2'), typeof ('3' * '4'), typeof null);`string number objectnumber number nullstring string objectstring number null
Voir la réponse
string number object1 + '2'concatène et donne la chaîne '12'.'3' * '4'convertit en nombres et donne 12.typeof nullvaut 'object', une erreur historique conservée pour ne pas casser le web.Les types primitifs de JavaScript sont string, number, boolean, undefined, null, symbol et … ; tout le reste (tableaux, fonctions, objets) est de type …, une fonction étant un objet appelable, même si
typeofrépond 'function' pour elle.Voir la réponse
Les types primitifs de JavaScript sont string, number, boolean, undefined, null, symbol et bigint ; tout le reste (tableaux, fonctions, objets) est de type object, une fonction étant un objet appelable, même si
typeofrépond 'function' pour elle.Une valeur primitive ne se modifie pas : une méthode comme
toUpperCase()renvoie une nouvelle chaîne. Un objet, lui, se modifie en place.var : de quoi s'agit-il ?
Voir la réponse
Ancienne déclaration de variable, limitée à la fonction et non au bloc, et qui existe (avec la valeur undefined) avant sa ligne de déclaration.
Un
varécrit dans unifreste visible après lui, ce qui cache des bugs. Aveclet, lireqavant la lignelet q = 1;lèveReferenceError: Cannot access 'q' before initialization.Que se passe-t-il à l'exécution de ce programme ?
```javascript
const prix = 10;
prix = 12;
console.log(prix);`- Il affiche
12,constn'interdisant que le changement de type - Il s'arrête à la ligne 2 avec
TypeError: Assignment to constant variable. - Il affiche
10, la ligne 2 étant ignorée sans erreur - Il ne démarre pas :
SyntaxErrordès la lecture du fichier
Voir la réponse
Il s'arrête à la ligne 2 avec
TypeError: Assignment to constant variable.Réaffecter une constante est une erreur d'exécution, pas de syntaxe : la ligne 1 s'exécute, la ligne 2 lève l'exception. Pour une valeur qui doit changer, on déclare avec
let.- Il affiche