Agent Skills: JavaScript Language Patterns

Modern JavaScript (ES2022+) patterns for clean, maintainable code. Use when working with modern JavaScript features like optional chaining, nullish coalescing, or ESM. (triggers: **/*.js, **/*.mjs, **/*.cjs, const, let, arrow, async, await, promise, destructuring, spread, class)

UncategorizedID: hoangnguyen0403/agent-skills-standard/javascript-language

Install this agent skill to your local

pnpm dlx add-skill https://github.com/HoangNguyen0403/agent-skills-standard/tree/HEAD/skills/javascript/javascript-language

Skill Files

Browse the full folder contents for javascript-language.

Download Skill

Loading file tree…

skills/javascript/javascript-language/SKILL.md

Skill Metadata

Name
javascript-language
Description
'Modern JavaScript (ES2022+) patterns for clean, maintainable code. Use when working with modern JavaScript features like optional chaining, nullish coalescing, or ESM. (triggers: **/*.js, **/*.mjs, **/*.cjs, const, let, arrow, async, await, promise, destructuring, spread, class)'

JavaScript Language Patterns

Priority: P0 (CRITICAL)

Implementation Guidelines

  • Variables: const default. let if needed. No var — block scope only.
  • Functionality: Use Arrow Functions for callbacks/inlines; Function Declaration for core logic.
  • Async Logic: Use async/await with try/catch and Promise.all() for parallel operations. ESM import/export only. No Callbacks — promisify everything.
  • Modern Syntax: Use Destructuring, Spread (...), Optional Chain ?. and Nullish ?? coalescing.
  • String Handling: Use Template Literals (backticks) for interpolation and multi-line strings.
  • Data Collections: Prefer map, filter, and reduce over imperative for loops.
  • Modules: Standardize on ESM import/export; use Named Exports over Default.
  • Encapsulation: Leverage #private class fields for encapsulation.
  • Error States: Throw new Error() with descriptive messages; never throw strings.

Anti-Patterns

  • No var — Block scope only.
  • No ==: Strict ===.
  • No new Object(): Use literals {}.
  • No Callbacks: Promisify everything.
  • No Mutation: Immutability first.

Code

// Modern Syntax
const [x, ...rest] = items;
const name = user?.profile?.name ?? 'Guest';

// Async + Error Handling
async function getUser(id) {
  const res = await fetch(`/api/${id}`);
  return res.json(); // Errors propagate
}

// Private Fields
class Service {
  #key;
  constructor(k) {
    this.#key = k;
  }
}

Reference & Examples

For advanced patterns and functional programming: See references/REFERENCE.md.

Related Topics

best-practices | tooling