autojanet/skills/understand/languages/javascript.md
Zoë cc74ad0bd0
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
fix: use library/ Harbor project, add skills, fix pipeline secrets
- .woodpecker.yaml: image paths -> library/autojanet-{agent,dispatcher}
- .woodpecker.yaml: secret names RS_HARBOR_USER / RS_HARBOR_PASS (global)
- container/Dockerfile: restore COPY skills/, skills/ populated from opencode config
- skills/: 84 opencode skills bundled into image
- k8s/manifests: update image refs to library/
2026-05-30 15:43:14 -07:00

2.3 KiB

JavaScript Language Prompt Snippet

Key Concepts

  • Closures: Functions that capture variables from their enclosing lexical scope
  • Prototypes: Prototype chain-based inheritance underlying all JavaScript objects
  • Promises: Asynchronous value containers enabling .then() chaining and async/await
  • Event Loop: Single-threaded concurrency model with microtask and macrotask queues
  • Destructuring: Extract values from objects and arrays into distinct variables
  • Spread/Rest Operators: ... for expanding iterables or collecting remaining arguments
  • Proxies: Meta-programming construct to intercept and customize object operations
  • Generators: Functions using function* and yield for lazy iteration
  • Symbol: Unique, immutable primitive used for non-string property keys
  • WeakMap/WeakSet: Collections with weakly-held keys allowing garbage collection
  • Modules (ESM vs CJS): ES Modules use import/export; CommonJS uses require/module.exports

Import Patterns

  • import { X } from 'module' — ESM named import
  • const X = require('module') — CommonJS require
  • import('module') — dynamic import returning a Promise (code splitting)
  • export default X / export { X } — ESM export forms

File Patterns

  • index.js — barrel file or directory entry point
  • .mjs — explicitly ES Module files
  • .cjs — explicitly CommonJS files
  • package.json "type" field — sets default module system ("module" or "commonjs")

Common Frameworks

  • React — Declarative UI with virtual DOM and component model
  • Vue — Progressive framework with reactivity system and single-file components
  • Express — Minimal and flexible Node.js web application framework
  • Next.js — React framework for production with hybrid rendering
  • Svelte — Compile-time framework that shifts work from runtime to build step

Example Language Notes

Closure captures outer config variable, providing encapsulated state without class overhead. The returned object's methods share access to the same config reference, forming a module pattern that was standard before ES Modules.

When encountering .mjs vs .cjs extensions, the module system is determined by extension regardless of the package.json type field — useful in mixed codebases.