fundamentals

pluginagentmarketplace's avatarfrom pluginagentmarketplace

Core JavaScript fundamentals including variables, data types, operators, control flow, and basic syntax. Essential foundation for all JavaScript development.

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 31, 2025

When & Why to Use This Skill

This Claude skill serves as a comprehensive technical reference for core JavaScript fundamentals, designed to anchor development in best practices. It covers essential syntax, data types, and control flow patterns while providing production-grade strategies for error handling and modern ES6+ implementation. By offering clear guidance on type coercion, logical operators, and troubleshooting, it helps developers write cleaner, more predictable code.

Use Cases

  • Syntax & Logic Reference: Quickly look up variable declarations, operator precedence, and complex control flow structures to ensure syntactical accuracy during development.
  • Code Quality Optimization: Implement professional patterns such as early returns, strict equality (===), and exhaustive switch statements to improve code readability and maintainability.
  • Debugging & Troubleshooting: Utilize the built-in error checklist to rapidly diagnose and resolve common JavaScript issues like ReferenceErrors, TypeErrors, and unexpected NaN results.
  • Modern Feature Integration: Safely adopt modern JavaScript operators like optional chaining (?.) and nullish coalescing (??) to handle null or undefined values more gracefully in production code.
namefundamentals
descriptionCore JavaScript fundamentals including variables, data types, operators, control flow, and basic syntax. Essential foundation for all JavaScript development.
sasmp_version"1.3.0"
bonded_agent01-javascript-fundamentals
bond_typePRIMARY_BOND
skill_typereference
response_formatcode_first
max_tokens1500
required[topic]
optional[depth, examples]
on_ambiguityask_clarification
fallbackprovide_basics_first
entry_log"Fundamentals skill activated"
exit_log"Fundamentals reference provided"

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 "hello" "string"
Number 42, 3.14, NaN "number"
Boolean true, false "boolean"
Null null "object"
Undefined undefined "undefined"
Symbol Symbol('id') "symbol"
BigInt 9007199254740991n "bigint"
Object {}, [], fn "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
ReferenceError: x is not defined Variable not declared Check spelling, scope
TypeError: Cannot read property Accessing null/undefined Use optional chaining ?.
NaN result Invalid number operation Validate input types
Unexpected true/false 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?.();
  • Agent 01: JavaScript Fundamentals (detailed learning)
  • Skill: functions: Function patterns
  • Skill: data-structures: Objects and arrays