Skip to content

Boarding pass · JavaScript Beginner

JavaScript · Beginner interview

An AI mock interview for developers new to JavaScript (0–2 years). Practise types and coercion, scope and functions, objects and arrays, and asynchronous basics — out loud, with a readiness score.

20–30 minEstimated6 questionsTailored live12 model answersTo study
  • Voice interview
  • Live feedback
  • Browser-only
  • No installation required

Your report · sample

AI Readiness Score

/100
Content score English score

Finish the mock and get this report — scored on content and English, with concrete tips and a model answer for every question, plus a study plan.

Your flight path

Five steps to interview-ready.

From a quick warm-up to a personalised study plan — here's the whole loop, and what you get at each gate.

  1. Step 01

    Preparation

    Skim the topics and warm up — you're briefed before takeoff.

  2. Step 02

    AI Interview

    A realistic AI interviewer asks tailored questions — answer by voice or text.

  3. Step 03

    Instant Score

    Finish and get a 0–100 readiness score across content and English.

  4. Step 04

    AI Feedback

    Concrete tips and a rewritten model answer for every response.

  5. Step 05

    Study Plan

    A personalised plan targets your weakest areas — so the next run scores higher.

Preview the AI demo

See one answer scored, end to end.

The whole loop on sample data — question, your answer, instant feedback and a study plan. Hover to pause.

aevrofy.com/session · live demoPlaying

Interviewer · Question 1

“Tell me about yourself.”

Who it's for

  • Developers new to JavaScript
  • Bootcamp grads and self-taught devs
  • Anyone targeting junior frontend roles
  • Backend devs picking up JS

What you'll practice

  • var/let/const, types and coercion
  • Scope, hoisting and functions
  • Array and object manipulation
  • Callbacks, promises and async/await

Topics covered

What this level expects.

Types & coercion

  • Primitive types
  • == vs ===
  • null vs undefined

Scope & functions

  • var/let/const
  • Hoisting
  • Arrow functions

Objects & arrays

  • Reference vs value
  • Array methods
  • JSON

Async

  • Callbacks
  • Promises
  • async/await

Practice questions

12 questions, with model answers.

Read them, then run the live mock to answer out loud and get scored. Tap any question to reveal a model answer.

01What are the primitive types in JavaScript?

There are seven primitives: string, number, boolean, null, undefined, bigint, and symbol. Everything else (objects, arrays, functions) is an object. Primitives are immutable and compared by value, while objects are compared by reference. typeof tells you the type, with the well-known quirk that typeof null returns 'object'.

02What's the difference between == and ===?

=== is strict equality: it compares value and type with no conversion. == is loose equality: it coerces the operands to a common type first, which leads to surprises like 0 == '' or null == undefined being true. The rule is to use === by default to avoid hidden coercion bugs.

03What's the difference between null and undefined?

undefined means a variable has been declared but not assigned, or a missing property/return — it's JavaScript's default 'nothing'. null is an intentional 'no value' you assign yourself. They're loosely equal (==) but not strictly (===), and you typically check for both with == null.

04What's the difference between let, const, and var?

var is function-scoped and hoisted (initialized as undefined), which causes leaks and confusing bugs. let and const are block-scoped and live in a 'temporal dead zone' until declared, so using them early throws. const can't be reassigned (though objects it points to can still be mutated). Modern code uses const by default and let when reassignment is needed, avoiding var.

05What is hoisting?

Hoisting is JavaScript moving declarations to the top of their scope before execution. Function declarations are fully hoisted (callable before their definition); var declarations are hoisted but initialized as undefined; let/const are hoisted but unusable until their line (the temporal dead zone). Understanding it explains why some code runs and some throws ReferenceError.

06How do arrow functions differ from regular functions?

Arrow functions are shorter and, crucially, don't have their own this — they inherit it from the enclosing scope, which makes them great for callbacks where you want the outer this. They also lack their own arguments object and can't be used as constructors. Regular functions get their this from how they're called.

const obj = { items: [1], show() { this.items.forEach(i => console.log(this)); } };
07What's the difference between copying a primitive and copying an object?

Primitives are copied by value — assigning one variable to another duplicates the value, and they're independent. Objects (and arrays) are copied by reference — the variable holds a pointer, so two variables can point to the same object and mutating through one is visible through the other. To get an independent copy you spread or use a copy function.

const a = { n: 1 }; const b = a; b.n = 2; // a.n is now 2
const c = { ...a }; // independent shallow copy
08What do map, filter, and reduce do?

map transforms each element and returns a new array of the same length; filter returns a new array with only the elements that pass a test; reduce boils an array down to a single value by accumulating. They're non-mutating and composable, which is why they're preferred over manual for-loops for transforming data.

[1,2,3].map(n => n*2);        // [2,4,6]
[1,2,3].filter(n => n>1);     // [2,3]
[1,2,3].reduce((a,b) => a+b); // 6
09What are JSON.parse and JSON.stringify for?

JSON.stringify converts a JavaScript value to a JSON string (for storage or sending over the network); JSON.parse turns a JSON string back into a value. Note that stringify drops functions and undefined and turns Dates into strings, so a stringify→parse round trip is also a quick (but lossy) way to deep-copy plain data.

10What is a callback?

A callback is a function passed to another function to be called later — when an event fires or an async operation finishes. They're the original async mechanism in JS (setTimeout, event listeners), but nesting many of them for dependent steps creates hard-to-read 'callback hell', which promises and async/await solve.

11What is a promise?

A promise represents a value that will be available later — it's pending, then either fulfilled with a value or rejected with an error. You handle the outcome with .then and .catch, and you can chain them so each step runs after the previous resolves. Promises flatten the nesting of callbacks and standardize error handling.

12What does async/await do?

async/await is syntax over promises that lets you write asynchronous code that reads like synchronous code. An async function returns a promise, and await pauses it until a promise settles, with errors handled by ordinary try/catch. It's the same machinery as .then chains, just easier to read.

async function load() {
  try { const r = await fetch(url); return await r.json(); }
  catch (e) { console.error(e); }
}

Preparation tips

Walk in ready.

  • Always use === unless you have a reason not to
  • Understand why var hoists and let doesn't (TDZ)
  • Practise map/filter/reduce on an array
  • Be able to convert a callback to async/await

Ready for the real thing?

Run a 6-question JavaScript mock interview, answer out loud, and get a readiness score with tips and model answers.

More beginner interviews

Aevrofy · JavaScript beginner interview prep