Skip to content

Latest commit

History

History
71 lines (51 loc) · 1.7 KB

File metadata and controls

71 lines (51 loc) · 1.7 KB

devlearn-javascript — reference

MDN quick links

Script loading

<scriptsrc="app.js" defer></script>
AttributeEffect
deferRun after HTML parsed, order preserved
type="module"ES modules, strict mode, defer implied

Minimal todo state shape

/** @type {{ id: string, text: string, done: boolean }[]} */lettodos=[];

ID generation (teaching moment)

constid=crypto.randomUUID?.()??String(Date.now());

Explain: stable id for delete/toggle.

Delete handler pattern

functiondeleteTodo(id){todos=todos.filter((t)=>t.id!==id);render();}

Teach filter as "keep todos whose id doesn't match."

async/await one-liner teaching

asyncfunctionloadTodos(){constresponse=awaitfetch('/api/todos');todos=awaitresponse.json();render();}

Order: fetch returns Promise → await pauses function until data → json parses body.

Debugging cheatsheet for learners

ToolUse
console.logSee values
breakpointPause on line in Sources tab
Network tabSee fetch requests (apis skill)

When to suggest devlearn-apis

  • User asks save across refresh
  • User mentions database, login, server
  • fetch errors (404, CORS)