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

<script src="app.js" defer></script>
Attribute Effect
defer Run after HTML parsed, order preserved
type="module" ES modules, strict mode, defer implied

Minimal todo state shape

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

ID generation (teaching moment)

const id = crypto.randomUUID?.() ?? String(Date.now());

Explain: stable id for delete/toggle.

Delete handler pattern

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

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

async/await one-liner teaching

async function loadTodos() {
  const response = await fetch('/api/todos');
  todos = await response.json();
  render();
}

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

Debugging cheatsheet for learners

Tool Use
console.log See values
breakpoint Pause on line in Sources tab
Network tab See fetch requests (apis skill)

When to suggest devlearn-apis

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