Quiz JavaScript

Structure lexicale 01 (Q28)

Pourquoi inclure la déclaration 'use strict' dans un fichier JavaScript ?

  1. Pour dire au parseur d'interpréter la syntaxe JavaScript plus librement.
  2. Pour dire au parseur d'appliquer toutes les règles de syntaxe JavaScript.
  3. Pour ordonner au navigateur de résoudre automatiquement les erreurs qu'il trouve dans le code.
  4. Pour autoriser les fonctionnalités ES6 dans le code.

Solution

  1. Pour dire au parseur d'appliquer toutes les règles de syntaxe JavaScript.

Article(s) intéressant(s) :

Structure lexicale 02 (Q31)

Lequel de ces mots n'est pas un mot-clé en JavaScript ?

  1. this
  2. catch
  3. function
  4. array

Solution

  1. array

Article(s) intéressant(s) :

Structure lexicale 03 (Q60)

Lequel de ces noms est un nom de variable valide ?

  1. 5thItem
  2. firstName
  3. grand total
  4. function

Solution

  1. firstName

Explication

Un nom de variable ne peut pas commencer par un chiffre. Donc "5thItem" n'est pas valide.

Un nom de variable ne peut pas contenir d'espace. Donc "grand total" n'est pas valide.

Enfin, un nom de variable ne peut pas être un mot-clé réservé par JavaScript. Donc "function" n'est pas valide.

Article(s) intéressant(s) :

Structure lexicale 04 (Q66)

Comment ajouter un commentaire à du code JavaScript ?

  1. ! This is a comment
  2. # This is a comment
  3. \\ This is a comment
  4. // This is a comment

Solution

  1. // This is a comment

Article(s) intéressant(s) :

Types, valeurs et variables 01 (Q4)

Quelle instruction ("statement") est valide pour créer une variable appellée rate et lui assigner la valeur 100 ?

  1. let rate = 100;
  2. let 100 = rate;
  3. 100 = let rate;
  4. rate = 100;

Solution

  1. let rate = 100;

Article(s) intéressant(s) :

Types, valeurs et variables 02 (Q15)

console.log(typeof 42);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. 'float'
  2. 'value'
  3. 'number'
  4. 'integer'

Solution

  1. 'number'

Article(s) intéressant(s) :

Types, valeurs et variables 03 (Q29)

Quel(s) mot-clé(s) permettent d'accéder à une variable (en tant qu'undefined) avant la ligne qui la définit ?

  1. const
  2. var
  3. let
  4. var et let

Solution

  1. var

Article(s) intéressant(s) :

Types, valeurs et variables 04 (Q30, Q132, Q151)

Quelle expression évalue à true ?

  1. Boolean(0)
  2. Boolean('')
  3. Boolean(NaN)
  4. Boolean('false')

Solution

  1. Boolean('false')

Article(s) intéressant(s) :

Types, valeurs et variables 05 (Q79)

let obj;
console.log(obj);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. ReferenceError: obj is not defined
  2. {}
  3. undefined
  4. null

Solution

  1. undefined

Article(s) intéressant(s) :

Types, valeurs et variables 06 (Q123)

console.log(typeof 41.1);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. ReferenceError
  2. 'decimal'
  3. float
  4. 'number'

Solution

  1. 'number'

Article(s) intéressant(s) :

Types, valeurs et variables 07 (Q145)

console.log(typeof NaN);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. 'object'.
  2. Number.
  3. String.
  4. None of the other solutions.

Solution

  1. None of the other solutions.

Explanation

Cette question est piégeuse. L'opérateur typeof retourne toujours une chaîne de caractères ("string"). Donc le code initial retourne la chaîne de caractères 'number' et non Number.

Article(s) intéressant(s) :

Types, valeurs et variables 08 (Q45)

const start = 1;
if (start === 1) {
  let end = 2;
}

Quel type de "scope" a la variable end dans le code précédent ?

  1. "conditional"
  2. "block"
  3. "global"
  4. "function"

Solution

  1. "block"

Article(s) intéressant(s) :

Types, valeurs et variables 09 (Q98)

let x = 6 + 3 + '3';
console.log(x);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. '93'
  2. 93
  3. '633'
  4. '66'

Solution

  1. '93'

Article(s) intéressant(s) :

Types, valeurs et variables 10 (Q107)

console.log(typeof 'blueberry');

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. 'string'
  2. String
  3. [String]
  4. ['string']

Solution

  1. 'string'

Article(s) intéressant(s) :

Types, valeurs et variables 11 (Q115)

const lion = 1; // ligne 1
let tiger = 2; // ligne 2
var bear; // ligne 3

++lion; // ligne 5
bear += lion + tiger; // ligne 6
tiger++;  // ligne 7

Quelle ligne de code provoque une erreur dasn le code précédent ?

  1. La ligne 5, parce qu'il n'est pas possible de réassigner une autre valeur à la variable lion.
  2. La ligne 6, parce que l'opérateur += ne peut pas être utilisé avec la variable bear.
  3. La ligne 5, parce que l'opérateur préfixé (++) n'existe pas en JavaScript.
  4. La ligne 3, parce que la variable bear est laissée à la valeur undefined.

Solution

  1. La ligne 5, parce qu'il n'est pas possible de réassigner une autre valeur à la variable lion.

Article(s) intéressant(s) :

Types, valeurs et variables 12 (Q120)

if (true) {
  var x = 5;
  const y = 6;
  let z = 7;
}
console.log(x + y + z);

Que se passe t'il lorsque le code précédent est exécuté ?

  1. Il s'affiche une erreur ReferenceError concernant x.
  2. Il s'affiche 18.
  3. Il s'affiche undefined.
  4. Il s'affiche une erreur ReferenceError concernant y.

Solution

  1. Il s'affiche une erreur ReferenceError concernant y.

Article(s) intéressant(s) :

Explication

L'instruction ("statement") var x = 5; déclare une variable qui n'est pas "block-scoped". Donc x sera accessible depuis l'instruction ("statement")n console.log(x + y + z);. Sa valeur sera 5.

L'instruction let déclare une variable y qui est "block-scoped". Donc elle ne sera pas accessible depuis l'extérieur des accolades ("curly braces") de l'instruction ("statement") if. A l'intérieur de l'instruction console.log(), le parseur JavaScript lancera une erreur ReferenceError quand il essayera d'accéder à la valeur de y, puisque y n'existe pas dans le "scope" actuel ("global scope").

Types, valeurs et variables 13 (Q126)

const cat = { name: 'Athena' };

function swap(feline) {
  feline.name = 'Wild';
  feline = { name: 'Tabby' };
}

swap(cat);
console.log(cat.name);

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. undefined
  2. 'Wild'
  3. 'Tabby'
  4. 'Athena'

Solution

  1. 'Wild'

Explication

Quand swap(cat); est exécuté, l'objet { name: 'Athena' } est assigné à la variable locale feline, qui a une portée limitée par la fonction swap.

Donc les variables feline et cat référencent le même objet.

À la 1ère ligne de la fonction, la propriété name de feline est changé à 'Wild'. Comme feline et cat référencent le même objet, le name de l'objet référencé par cat est aussi changé à 'Wild'.

À la ligne suivante de la fonction, un nouvel objet est assigné à la variable locale feline. Les variables feline et cat cessent de référencer le même objet. L'objet référencé par la variable cat reste tel qu'il est. C'est l'objet { name: 'Wild' }.

Dès lors, console.log(cat.name) affiche 'Wild'.

Types, valeurs et variables 14 (Q128)

const myFunc = () => {
  const a = 2;
  return () => console.log('a is ' + a);
};
const a = 1;
const test = myFunc();
test();

Qu'affiche le code précédent lorsqu'il est exécuté ?

  1. a is 1.
  2. a is undefined.
  3. Rien ne s'affiche.
  4. a is 2.

Solution

  1. a is 2.

Article(s) intéressant(s) :

Types, valeurs et variables 15 (Q152)

Comment vérifier si le mot 'pot' est dans le mot 'potato' ?

  1. 'pot'.indexOf('potato') !== -1
  2. 'potato'.includes('Pot')
  3. 'potato'.includes('pot')
  4. 'potato'.contains('pot')

Solution

  1. 'potato'.includes('pot')

Article(s) intéressant(s) :

Types, valeurs et variables 16 (Q114)

Quelle valeur n'est pas "falsy" ?

  1. []
  2. undefined
  3. 0
  4. null

Solution

  1. []

Article(s) intéressant(s) :