QCM Javascript – Partie 38
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. Qu’est-ce que l’encapsulation dans la programmation orientée objet ?
A Le regroupement des données et des méthodes qui opèrent sur ces données.
B La création de variables privées au sein d’une classe
C La capacité d’un objet à prendre de nombreuses formes
D Un design pattern qui garantit qu’une seule instance d’une classe est créée
2. En JavaScript, qu’est-ce qu’un prototype ?
A Un plan de création d’objets
B Une fonction qui crée un objet
C Une instance d’une classe
D L’objet dont une fonction ou un objet hérite des propriétés
3. Comment fonctionne l’héritage en JavaScript ?
A Par le biais des classes et du mot-clé extend
B Par la chaîne de prototypes
C Par l’utilisation de constructeurs de Function()
D Par les variables globales
4. Quels sont les avantages de l’utilisation des classes ES6 par rapport aux constructeurs Function()?
A Les classes ES6 sont plus performantes
B Les classes ES6 offrent des méthodes et des propriétés privées
C Les classes ES6 offrent une syntaxe plus claire et plus concise
D Les constructeurs Function() n’autorisent pas l’héritage
5. Qu’est-ce que le polymorphisme dans le contexte de la programmation orientée objet ?
A La possibilité de créer plusieurs instances d’une classe
B La possibilité de traiter des classes différentes comme des instances de la même classe
C Le fait qu’une fonction prenne plusieurs formes
D La capacité d’une classe à hériter de plusieurs classes
6. Que fait cette syntaxe de classe ES6 ?
class Animal { constructor(name) { this.name = name; } speak() { console.log(${this.name} émet un bruit); } }
A Définit une classe Animal avec des méthodes pour chaque animal
B Crée une instance de la classe Animal
C Définit une classe Animal avec un constructeur et une méthode speak
D Déclare une fonction globale nommée Animal
7. Quel est le résultat de ce code?
class Rectangle { constructor(width, height) { this.width = width; this.height = height; } get surface() { return this.width * this.height; } } let rect = new Rectangle(5, 10); console.log(rect.surface);
A ‘5×10’
B 50
C 10
D Erreur de syntaxe
8. Que donnera le code d’héritage suivant ?
class Animal { speak() { return 'Je suis un animal'; } } class Chien extends Animal { speak() { return super.speak() + ', mais plus précisément un chien'; } } let chien = new Chien(); console.log(chien.speak());
A ‘Je suis un animal’
B ‘Je suis un animal, mais plus précisément un chien’
C ‘Je suis un chien’
D Erreur de syntaxe
9. Identifiez l’erreur dans cette définition de classe :
class Person { constructor(name) { name = name; } }
A Le constructeur ne définit pas correctement la propriété
B La classe devrait également avoir des méthodes
C Erreur de syntaxe dans la définition de la classe
D Pas d’erreur
10. Trouvez l’erreur dans l’héritage de cette classe:
class Person { constructor(name) { this.name = name; } } class Employee extends Person { constructor(name, salary) { super(); this.salary = salary; } }
A Argument name manquant dans l’appel super
B La classe Employee ne doit pas avoir de propriétés supplémentaires
C Erreur de syntaxe dans l’héritage de la classe
D Pas d’erreur