Claude-skill-registry fundamentals
Core JavaScript fundamentals including variables, data types, operators, control flow, and basic syntax. Essential foundation for all JavaScript development.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fundamentals" ~/.claude/skills/majiayu000-claude-skill-registry-fundamentals && rm -rf "$T"
manifest:
skills/data/fundamentals/SKILL.mdsource content
JavaScript Fundamentals Skill
Quick Reference Card
Variable Declaration
const PI = 3.14159; // Immutable binding (preferred) let count = 0; // Reassignable var legacy = "avoid"; // Function-scoped (avoid)
8 Data Types
| Type | Example | typeof |
|---|---|---|
| String | | |
| Number | , , | |
| Boolean | , | |
| Null | | |
| Undefined | | |
| Symbol | | |
| BigInt | | |
| Object | , , | |
Operators Cheat Sheet
// Arithmetic + - * / % ** // Comparison (always use strict) === !== > < >= <= // Logical && || ! // Nullish ?? ?. // Assignment = += -= *= /= ??= ||= &&=
Control Flow Patterns
// Early return (preferred) function validate(input) { if (!input) return { error: 'Required' }; if (input.length < 3) return { error: 'Too short' }; return { valid: true }; } // Switch with exhaustive handling function getColor(status) { switch (status) { case 'success': return 'green'; case 'warning': return 'yellow'; case 'error': return 'red'; default: return 'gray'; } }
Type Coercion Rules
// Explicit conversion (preferred) Number('42') // 42 String(42) // "42" Boolean(1) // true // Truthy values: non-zero numbers, non-empty strings, objects // Falsy values: 0, "", null, undefined, NaN, false
Modern Operators
// Nullish coalescing const name = input ?? 'Guest'; // Only null/undefined // Optional chaining const city = user?.address?.city; // Safe navigation // Logical assignment config.debug ??= false; // Assign if nullish
Troubleshooting
Common Issues
| Error | Cause | Fix |
|---|---|---|
| Variable not declared | Check spelling, scope |
| Accessing null/undefined | Use optional chaining |
result | Invalid number operation | Validate input types |
Unexpected / | Loose equality | Use strict |
Debug Checklist
// 1. Check type console.log(typeof variable); // 2. Check value console.log(JSON.stringify(variable)); // 3. Check for null/undefined console.log(variable === null, variable === undefined); // 4. Use debugger debugger;
Production Patterns
Input Validation
function processNumber(value) { if (typeof value !== 'number' || Number.isNaN(value)) { throw new TypeError('Expected a valid number'); } return value * 2; }
Safe Property Access
const city = user?.address?.city ?? 'Unknown'; const callback = options.onComplete?.();
Related
- Agent 01: JavaScript Fundamentals (detailed learning)
- Skill: functions: Function patterns
- Skill: data-structures: Objects and arrays