Mis à jour le

🟨
Junior 30 questions • JavaScript

Questions JavaScript Junior

30 questions essentielles pour les entretiens JavaScript junior. Closures, prototypes, asynchrone, DOM et ES6+.

1. Quelle est la différence entre var, let et const ?

  • var : scope fonction, hoisting, redeclarable
  • let : scope bloc, pas de hoisting utilisable, non redeclarable
  • const : comme let mais non reassignable
var x = 1;   // function-scoped
let y = 2;   // block-scoped
const z = 3; // block-scoped, immutable reference

2. Qu'est-ce qu'une closure ?

Une closure est une fonction qui se "souvient" de son environnement lexical même après que la fonction parente a termine son exécution.

function compteur() {
  let count = 0;
  return function() {
    return ++count;
  };
}
const inc = compteur();
inc(); // 1
inc(); // 2

3. Comment fonctionne le hoisting ?

Les déclarations de variables (var) et de fonctions sont "remontees" en haut de leur scope lors de la compilation.

console.log(x); // undefined (hoisting de var)
var x = 5;

console.log(y); // ReferenceError (let n'est pas hoiste)
let y = 10;

4. Expliquez l'event loop

L'event loop gere l'exécution asynchrone en JavaScript :

  1. Call stack : execute le code synchrone
  2. Web APIs : gere les opérations async (setTimeout, fetch)
  3. Callback queue : file d'attente des callbacks
  4. Microtask queue : Promises (prioritaire)

5. Qu'est-ce que le prototypal inheritance ?

En JavaScript, les objets heritent directement d'autres objets via la chaîne de prototypes (__proto__).

const animal = { parler() { return 'Son'; } };
const chien = Object.create(animal);
chien.parler(); // 'Son' (herite du prototype)

6. Différence entre == et === ?

  • == : egalite avec coercion de type
  • === : egalite stricte (type + valeur)
'5' == 5   // true (coercion)
'5' === 5  // false (types differents)

7. Les Promises et async/await

// Promise
fetch('/api/data')
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));

// async/await
async function getData() {
  try {
    const res = await fetch('/api/data');
    const data = await res.json();
    return data;
  } catch (err) {
    console.error(err);
  }
}

8. Destructuring et spread operator

const { nom, age } = personne;
const [premier, ...reste] = tableau;
const copie = { ...original, nouveau: 'champ' };

9-30. Autres questions courantes

  • Arrow functions vs fonctions classiques
  • this en JavaScript
  • Map, Set, WeakMap, WeakSet
  • Template literals
  • Modules ES6 (import/export)
  • Optional chaining (?.) et nullish coalescing (??)
  • Array methods (map, filter, reduce, find)
  • Event délégation et bubbling
  • Local Storage vs Session Storage
  • fetch API et gestion des erreurs

Besoin d'aide pour préparer vos entretiens ?

Decrivez votre profil pour des conseils de preparation personnalises.

Recevoir des conseils

Questions fréquentes

JavaScript est-il toujours demande en 2026 ?
Oui, JavaScript reste le langage le plus utilise au monde et est indispensable pour le developpement web frontend et backend (Node.js).
Faut-il connaitre TypeScript pour un poste junior ?
TypeScript est de plus en plus demande. Avoir des bases en TypeScript est un avantage significatif, meme pour un poste junior.

Pages liées

Chaque semaine, le meilleur de la tech française

Tendances, salaires, outils et opportunités — directement dans votre boîte mail.

Gratuit. Desabonnement en un clic. Pas de spam.