javascriptWrite robust JavaScript with async patterns, type coercion handling, and modern ES2023+ features.
Install via ClawdBot CLI:
clawdbot install ivangdavila/javascriptUser needs JavaScript expertise β from core language features to modern patterns. Agent handles async/await, closures, module systems, and ES2023+ features.
| Topic | File |
|-------|------|
| Async patterns | async.md |
| Type coercion rules | coercion.md |
| Array and object methods | collections.md |
| Modern ES features | modern.md |
== coerces: "0" == false is true β use === alwaysNaN !== NaN β use Number.isNaN(), not === NaNtypeof null === "object" β check === null explicitly{} === {} is falsethis depends on call site β lost in callbacksthis from lexical scope β use for callbackssetTimeout(obj.method) loses this β use arrow or .bind()this is element in regular function, undefined in arrow (if no outer this)let in loop or IIFE to capture valuevar hoisted to function scope β creates single binding shared across iterationslet per iterationsort(), reverse(), splice() mutate original β use toSorted(), toReversed(), toSpliced() (ES2023)push(), pop(), shift(), unshift() mutate β spread [...arr, item] for immutabledelete arr[i] leaves hole β use splice(i, 1) to remove and reindexObject.assign are shallow β nested objects still reference originalawait returns Promise, not value β easy to miss without TypeScriptforEach doesn't await β use for...of for sequential asyncPromise.all fails fast β one rejection rejects all, use Promise.allSettled if need all results.catch() or try/catch with await0.1 + 0.2 !== 0.3 β floating point, use integer cents or toFixed() for displayparseInt("08") works now β but parseInt("0x10") is 16, watch prefixesNumber("") is 0, Number(null) is 0 β but Number(undefined) is NaNBigInt for big numbersfor...in iterates keys (including inherited) β use for...of for valuesfor...of on objects fails β objects aren't iterable, use Object.entries()Object.keys() skips non-enumerable β Reflect.ownKeys() gets all including symbols[] + [] is "" β arrays coerce to strings[] + {} is "[object Object]" β object toString{} + [] is 0 in console β {} parsed as block, not object"5" - 1 is 4, "5" + 1 is "51" β minus coerces, plus concatenates"use strict" at top of file or function β catches silent errorsx = 5 without declaration failsthis is undefined in strict functions β not global objectwith forbiddenGenerated Mar 1, 2026
Building interactive front-end interfaces with modern ES2023+ features like async/await for API calls and handling type coercion to ensure data consistency. Common in e-commerce or SaaS platforms where user input validation and dynamic content updates are critical.
Developing server-side logic in Node.js with robust async patterns to manage database queries and external service integrations, avoiding pitfalls like unhandled promise rejections that could crash production systems. Used in fintech or logistics for real-time data processing.
Creating scripts to manipulate arrays and objects for data transformation, leveraging immutable methods like toSorted() to prevent accidental mutations in analytics pipelines. Applicable in marketing or research for cleaning and aggregating datasets.
Designing interactive coding tutorials or sandbox environments that demonstrate JavaScript concepts such as closure traps and this binding, helping learners avoid common errors while experimenting with code examples.
Writing lightweight JavaScript for embedded systems or edge devices, using strict mode to catch errors early and handling numbers precisely with BigInt for sensor data that exceeds standard integer limits.
Offering subscription-based web applications built with JavaScript, where robust async handling ensures reliable user interactions and scalability. Revenue is generated through monthly or annual licensing fees from businesses or individual users.
Providing expert services to companies for JavaScript code reviews, performance optimization, and developer training on modern patterns like ES2023+ features. Revenue comes from project-based contracts or hourly rates for advisory work.
Creating and selling JavaScript libraries, frameworks, or IDE plugins that assist with tasks like type coercion handling or async debugging, with a free basic version and paid upgrades for advanced features. Revenue is driven by premium subscriptions or one-time purchases.
π¬ Integration Tip
Integrate this skill by referencing quick reference files like async.md for async patterns and using strict mode to enforce code quality in existing projects.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Provides a 7-step debugging protocol plus language-specific commands to systematically identify, verify, and fix software bugs across multiple environments.
A comprehensive skill for using the Cursor CLI agent for various software engineering tasks (updated for 2026 features, includes tmux automation guide).
Write, run, and manage unit, integration, and E2E tests across TypeScript, Python, and Swift using recommended frameworks.
Control and operate Opencode via slash commands. Use this skill to manage sessions, select models, switch agents (plan/build), and coordinate coding through Opencode.
Coding style memory that adapts to your preferences, conventions, and patterns for consistent coding.