inPace
All coursesكل الدورات

JavaScript: the language and the browser, the inPace way

  • about 8 h of lessonsحوالي 8 ساعة من الدروس
  • 7 modulesوحدات · 20 lessonsدروس
  • Englishالإنجليزية

A one-week JavaScript course built around inPace's app.js: the language core, closures, the DOM and event delegation, the event loop, fetch and FormData, history and navigation, storage, pointer events, canvas and a full zoomable diagram component. Daily interview questions and a live-coding drill. Plan: 7 days, about 1.5 hours a day.

byمن إعداد inPace checkedموثّق

javascriptdomwebfrontendinterview

On these roadmaps:ضمن هذه المسارات: Build inPace yourself

What's insideمحتوى الدورة

Each module ends with tasks. The next module opens when they're done.تنتهي كل وحدة بمهام، وتُفتح الوحدة التالية عند إنجازها.

  1. Day 1: The language core you can't skip 3 lessonsدروس · 55 min د
    • Start here10 min د
    • Values, types and equality25 min د
    • let, const, scope and hoisting20 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  2. Day 2: Functions, closures and this 3 lessonsدروس · 65 min د
    • Closures25 min د
    • this, arrow functions and bind20 min د
    • Prototypes and classes20 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  3. Day 3: The DOM and events 3 lessonsدروس · 70 min د
    • Finding and changing elements20 min د
    • Events and delegation30 min د
    • Forms from JavaScript20 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  4. Day 4: Async: the event loop, promises and fetch 3 lessonsدروس · 75 min د
    • The event loop25 min د
    • Promises and async/await25 min د
    • Reading inPace's background form sender25 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  5. Day 5: Navigation and the browser APIs inPace uses 3 lessonsدروس · 65 min د
    • location and history25 min د
    • Storage, cookies, clipboard and share20 min د
    • Visibility, beacons and wake lock20 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  6. Day 6: Pointer events, canvas and a real component 3 lessonsدروس · 65 min د
    • Pointer events: mouse, pen and touch together25 min د
    • Canvas and images20 min د
    • Full screen, keyboard and focus20 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
  7. Day 7: Interview drill and live coding 2 lessonsدروس · 75 min د
    • 20 questions, short answers35 min د
    • Live coding: five classic tasks40 min د
    Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة

Read a lesson firstاقرأ درسًا أولًا

Values, types and equality

Seven primitives and objects

string, number, bigint, boolean, undefined, symbol, null, and then objects (arrays, functions, dates, maps... are objects). Primitives are copied by value; objects by reference.

const a = { n: 1 }; const b = a; b.n = 2;
console.log(a.n);           // 2: same object
typeof null                 // "object" (a famous old bug)
typeof []                   // "object"; use Array.isArray

== vs ===

=== compares without converting types. == converts first, with surprising rules ("" == 0 is true). Use === everywhere; the one common exception is x == null, which checks for both null and undefined.

Truthy and falsy

Falsy: false, 0, -0, 0n, "", null, undefined, NaN. Everything else is truthy, including "0", [] and {}.

Modern helpers you'll see in app.js

const name = user?.profile?.name ?? "friend";   // optional chaining + nullish coalescing
const { x, y } = point;                          // destructuring
const all = [...list, item];                     // spread
const n = +localStorage.getItem("inpace-plan-at") || 0;   // unary + converts to a number

?? only falls back on null/undefined; || also falls back on 0 and "". Interviewers love that difference.

Licenseالرخصة: CC-BY-4.0 · Updatedآخر تحديث 2026-11-13

Add to inPaceأضف إلى inPace