🟨
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 difference 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 meme apres que la fonction parente a termine son execution.

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

3. Comment fonctionne le hoisting ?

Les declarations 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'execution asynchrone en JavaScript :

  1. Call stack : execute le code synchrone
  2. Web APIs : gere les operations 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 chaine de prototypes (__proto__).

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

6. Difference 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 delegation et bubbling
  • Local Storage vs Session Storage
  • fetch API et gestion des erreurs

Besoin d'aide pour preparer vos entretiens ?

Decrivez votre profil pour des conseils de preparation personnalises.

Recevoir des conseils

Questions frequentes

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 liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.