Skillshub javascript-language
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)
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/javascript-language" ~/.claude/skills/comeonoliver-skillshub-javascript-language && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/javascript-language/SKILL.mdsource content
JavaScript Language Patterns
Priority: P0 (CRITICAL)
Implementation Guidelines
- Variables: const default. let if needed. No var — block scope only.
- Functionality: Use
for callbacks/inlines;Arrow Functions
for core logic.Function Declaration - 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
(backticks) for interpolation and multi-line strings.Template Literals - Data Collections: Prefer
,map
, andfilter
over imperativereduce
loops.for - Modules: Standardize on ESM import/export; use Named Exports over Default.
- Encapsulation: Leverage
class fields for encapsulation.#private - Error States: Throw
with descriptive messages; never throw strings.new Error()
Anti-Patterns
- No var — Block scope only.
- No
: Strict==
.=== - No
: Use literalsnew Object()
.{} - 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