QCM sur Javascript avec des réponses pour la préparation des tests techniques, des tests en ligne, aux examens et aux certifications. Ces questions et réponses sont tirés d’un vrai entretien écrit et certaines parties sont en direct.
1. La condition suivante renvoie-t-elle un résultat true OU false ?
var x = 6;
if( x >= 6 ) {console.log("Oui " + x + " est un grand nombre")}
A True
B False
A
La condition dans le code donné vérifie si la valeur de la variable x est supérieure ou égale à 6. Puisque la valeur de x est 6, c’est-à-dire égale à 6, la condition sera évaluée à true. Par conséquent, le code contenu dans l’instruction if sera exécuté et le message « Oui, 6 est un grand nombre » sera affiché.
2. Quelle est la valeur de la console de la ligne de code suivante.
function Foo(a, b, c) {
this.x = a;
this.y = b;
this.z = c;
}
var m = Foo(3, 4, 5);
var k = {};
Foo.call(k, 3, 4, 5);
console.log(k);
console.log(m);
A {}, {}
B {3,4,5}, {}
C {3,4,5}, {3,4,5}
D {3,4,5}, undefined
D
L’extrait de code définit une fonction constructeur `Foo` qui prend trois arguments `a`, `b`, et `c`. A l’intérieur de la fonction, il assigne les valeurs de `a`, `b`, et `c` aux propriétés `x`, `y`, et `z` de l’objet nouvellement créé en utilisant le mot-clé `this`.
Dans la première ligne après la définition de la fonction, `var m = Foo(3,4,5);`, la fonction `Foo` est appelée sans utiliser le mot-clé `new`. Cela signifie qu’elle n’est pas utilisée comme un constructeur et qu’elle ne crée pas un nouvel objet. Au lieu de cela, elle exécute simplement le code à l’intérieur de la fonction et renvoie `undefined`. Par conséquent, la valeur `undefined` est attribuée à `m`.
Dans la ligne suivante, `var k = {};`, un nouvel objet vide `k` est créé.
Ensuite, `Foo.call(k,3,4,5);` est appelé, ce qui exécute la fonction `Foo` avec `k` comme valeur `this` et passe `3`, `4`, et `5` comme arguments. Ceci assigne les valeurs `3`, `4`, et `5` aux propriétés `x`, `y`, et `z` de `k`.
Enfin, `console.log(k);` affiche la valeur de `k`, qui est `{3,4,5}`, et `console.log(m);` affiche la valeur de `m`, qui est `undefined`.
3. Combien de types de données y a-t-il en javascript ?
A 5
B 8
C 6
D 7
C
Il existe six types de données en JavaScript. Il s’agit des nombres, des chaînes de caractères, des booléens, des objets, des null et des undefined. Chaque type de données est utilisé pour stocker différents types de valeurs et possède son propre ensemble de propriétés et de méthodes. Le type de données number sert à stocker des valeurs numériques, le type de données string sert à stocker des valeurs textuelles, le type de données boolean sert à stocker des valeurs true ou false, le type de données object sert à stocker des structures de données complexes, le type de données null sert à représenter l’absence de toute valeur d’objet et le type de données undefined sert à représenter des variables qui ont été déclarées mais auxquelles aucune valeur n’a été attribuée.
4. Quelle est la valeur de la console de la ligne de code suivante.
var p = {};
p[Person('name')] = "Alex";
p[Person('name')] = "Bob";
console.log(p[Person('name')]);
A Alex
B Bob
C Person
D Undefned
D
Le code crée un objet vide `p` et lui attribue deux propriétés à l’aide de clés Person. La première propriété se voit attribuer la valeur « Alex » et la seconde la valeur « Bob ». Lorsque l’on essaie d’accéder à la valeur de `p[Person(‘name’)]`, on obtient la réponse `undefined` car les clés Person sont uniques et ne peuvent être accédées par aucun autre moyen que la même clé Person utilisée pour l’assignation. Par conséquent, la réponse correcte est « undefined ».
5. Quelle est la valeur de la console de la ligne de code suivante.
console.log("" == 0);
A True
B False
C Erreur
D Undefned
A
L’expression "" == 0 compare une chaîne vide au nombre 0. En JavaScript, lorsque l’on compare des valeurs de types différents, l’interpréteur tente de convertir l’une des valeurs ou les deux en un type commun avant d’effectuer la comparaison. Dans ce cas, la chaîne vide est convertie en nombre, ce qui donne 0. Par conséquent, l’expression "" == 0 est vraie car les deux côtés de la comparaison sont égaux.
6. Quelle est la valeur de la console de la ligne de code suivante.
(function(){ var a = b = 3; })();
console.log(typeof a !== 'undefined');
console.log(typeof b !== 'undefined');
A True, true
B True, false
C False, true
D False, false
C
Dans le code donné, il existe une fonction qui appelle elle-même la fonction, qui déclare une variable « a » et lui attribue la valeur 3. Cependant, la variable « b » n’est pas déclarée avec le mot-clé « var », et devient donc une variable globale. Par conséquent, « a » n’est pas accessible en dehors de la fonction et son type est indéfini. En revanche, « b » est accessible globalement et son type n’est pas indéfini. Par conséquent, les valeurs de la console sont false pour la première instruction et true pour la seconde.
7. Quel est le résultat de console.log(0.1 + 0.2 == 0.3) ?
A True
B False
C Erreur
D Undefned
B
La sortie de l’expression console.log(0.1 + 0.2 == 0.3) est `False`. C’est parce qu’en JavaScript, à cause de la précision de la virgule flottante, l’addition de 0.1 et 0.2 n’aboutit pas à une valeur exacte de 0.3. Par conséquent, la comparaison `0.1 + 0.2 == 0.3` est évaluée à `False`.
8. Quel est le résultat de console.log(1 && 2); ?
A 0
B 1
C 2
D 3
C
L’expression « 1 && 2 » est évaluée à l’aide de l’opérateur logique AND. En JavaScript, l’opérateur logique AND renvoie la valeur du deuxième opérande si le premier opérande est vrai (différent de false, 0, « », null, undefined ou NaN), sinon il renvoie la valeur du premier opérande. Dans ce cas, 1 et 2 sont des valeurs vraies, l’expression vaut donc 2.
9. Quelle propriété utiliseriez-vous pour rediriger les visiteurs vers une autre page ?
A Window.location.href
B Document.href
C Java.redirect.url
D Link.redirect.href
A
La bonne réponse est window.location.href. Cette propriété est utilisée pour rediriger un visiteur vers une autre page. Elle fait partie de l’objet window en JavaScript et permet de manipuler l’URL actuelle. En assignant une nouvelle URL à cette propriété, le navigateur navigue automatiquement vers la page spécifiée. Les autres options mentionnées, telles que document.href, java.redirect.url et link.redirect.href, ne sont pas des propriétés ou des méthodes valables pour rediriger les visiteurs vers une autre page.
10. Qu’est-ce qui décrit le mieux « void » ?
A Une méthode
B Une fonction
C Un opérateur
D Une instruction
E Aucune de ces réponses
E
Void n’est pas une méthode, une fonction ou une instruction. En programmation, void est un type de données qui représente l’absence de valeur. Il est souvent utilisé pour indiquer qu’une méthode ou une fonction ne renvoie aucune valeur. Cependant, void n’est pas non plus un opérateur, car les opérateurs sont des symboles ou des mots-clés utilisés pour effectuer des opérations spécifiques sur les données. La bonne réponse est donc aucune de ces réponses.