mirror of
https://github.com/leonardomso/33-js-concepts.git
synced 2026-01-18 14:09:19 +00:00
Replace misleading 'Value vs Reference Types' concept page with accurate 'Primitives vs Objects' terminology per ECMAScript spec. Key changes: - Use ECMAScript terminology (primitives/objects, not value/reference types) - Explain 'call by sharing' semantics instead of pass-by-value/reference - Debunk stack/heap storage myth as implementation detail - Add V8 internals section explaining Smis and heap allocation - Update all internal links across 10 files - Rename test directory and update tests with new terminology - Add redirect from old URL to new URL Addresses GitHub issue #481 about spreading misinformation. All 59 tests passing. Fact-checked against MDN, ECMAScript spec, and expert sources (Dmitry Soshnikov, Barbara Liskov's call-by-sharing).
274 lines
7.6 KiB
JSON
274 lines
7.6 KiB
JSON
{
|
|
"$schema": "https://mintlify.com/docs.json",
|
|
"theme": "maple",
|
|
"appearance": {
|
|
"default": "dark",
|
|
"strict": true
|
|
},
|
|
"name": "33 JavaScript Concepts",
|
|
"description": "Learn JavaScript with 33 essential concepts every developer should know. Free guide with clear explanations, practical code examples, and curated resources.",
|
|
"colors": {
|
|
"primary": "#F0DB4F",
|
|
"light": "#F0DB4F",
|
|
"dark": "#C9B83C"
|
|
},
|
|
"favicon": "/favicon.ico",
|
|
"seo": {
|
|
"indexing": "navigable",
|
|
"metatags": {
|
|
"og:type": "website",
|
|
"og:site_name": "33 JavaScript Concepts",
|
|
"og:locale": "en_US",
|
|
"og:image": "/og-image.png",
|
|
"twitter:card": "summary_large_image",
|
|
"twitter:site": "@leonardomso",
|
|
"twitter:creator": "@leonardomso",
|
|
"twitter:image": "/og-image.png",
|
|
"author": "Leonardo Maldonado",
|
|
"keywords": "JavaScript, JS, learn JavaScript, JavaScript tutorial, JavaScript concepts, JavaScript fundamentals, web development, programming, coding, closures, promises, async await, event loop, DOM, prototypes",
|
|
"language": "en",
|
|
"coverage": "Worldwide",
|
|
"distribution": "global",
|
|
"rating": "general",
|
|
"revisit-after": "7 days",
|
|
"category": "Technology, Education, Programming"
|
|
}
|
|
},
|
|
"search": {
|
|
"prompt": "Search concept..."
|
|
},
|
|
"metadata": {
|
|
"timestamp": true
|
|
},
|
|
"navbar": {
|
|
"links": [
|
|
{
|
|
"label": "GitHub",
|
|
"href": "https://github.com/leonardomso/33-js-concepts"
|
|
}
|
|
]
|
|
},
|
|
"navigation": {
|
|
"tabs": [
|
|
{
|
|
"tab": "Learn",
|
|
"groups": [
|
|
{
|
|
"group": "Getting Started",
|
|
"icon": "rocket",
|
|
"pages": [
|
|
"index",
|
|
"getting-started/about",
|
|
"getting-started/how-to-learn",
|
|
"getting-started/prerequisites",
|
|
"getting-started/learning-paths"
|
|
]
|
|
},
|
|
{
|
|
"group": "Fundamentals",
|
|
"icon": "cube",
|
|
"pages": [
|
|
"concepts/primitive-types",
|
|
"concepts/primitives-objects",
|
|
"concepts/type-coercion",
|
|
"concepts/equality-operators",
|
|
"concepts/scope-and-closures",
|
|
"concepts/call-stack"
|
|
]
|
|
},
|
|
{
|
|
"group": "Functions & Execution",
|
|
"icon": "code",
|
|
"pages": [
|
|
"concepts/event-loop",
|
|
"concepts/iife-modules"
|
|
]
|
|
},
|
|
{
|
|
"group": "Web Platform",
|
|
"icon": "browser",
|
|
"pages": [
|
|
"concepts/dom",
|
|
"concepts/http-fetch",
|
|
"concepts/web-workers"
|
|
]
|
|
},
|
|
{
|
|
"group": "Object-Oriented JS",
|
|
"icon": "sitemap",
|
|
"pages": [
|
|
"concepts/factories-classes",
|
|
"concepts/this-call-apply-bind",
|
|
"concepts/object-creation-prototypes",
|
|
"concepts/inheritance-polymorphism"
|
|
]
|
|
},
|
|
{
|
|
"group": "Async JavaScript",
|
|
"icon": "clock",
|
|
"pages": [
|
|
"concepts/callbacks",
|
|
"concepts/promises",
|
|
"concepts/async-await",
|
|
"concepts/generators-iterators"
|
|
]
|
|
},
|
|
{
|
|
"group": "Functional Programming",
|
|
"icon": "filter",
|
|
"pages": [
|
|
"concepts/higher-order-functions",
|
|
"concepts/pure-functions",
|
|
"concepts/map-reduce-filter",
|
|
"concepts/recursion",
|
|
"concepts/currying-composition"
|
|
]
|
|
},
|
|
{
|
|
"group": "Advanced Topics",
|
|
"icon": "graduation-cap",
|
|
"pages": [
|
|
"concepts/javascript-engines",
|
|
"concepts/error-handling",
|
|
"concepts/regular-expressions",
|
|
"concepts/modern-js-syntax",
|
|
"concepts/es-modules",
|
|
"concepts/data-structures",
|
|
"concepts/algorithms-big-o",
|
|
"concepts/design-patterns",
|
|
"concepts/clean-code"
|
|
]
|
|
},
|
|
{
|
|
"group": "What's Next?",
|
|
"icon": "arrow-right",
|
|
"pages": [
|
|
"beyond/getting-started/overview"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "Beyond 33",
|
|
"groups": [
|
|
{
|
|
"group": "Getting Started",
|
|
"icon": "rocket",
|
|
"pages": [
|
|
"beyond/getting-started/overview"
|
|
]
|
|
},
|
|
{
|
|
"group": "Language Mechanics",
|
|
"icon": "gear",
|
|
"pages": [
|
|
"beyond/concepts/hoisting",
|
|
"beyond/concepts/temporal-dead-zone",
|
|
"beyond/concepts/strict-mode"
|
|
]
|
|
},
|
|
{
|
|
"group": "Type System",
|
|
"icon": "code",
|
|
"pages": [
|
|
"beyond/concepts/javascript-type-nuances"
|
|
]
|
|
},
|
|
{
|
|
"group": "Objects & Properties",
|
|
"icon": "cube",
|
|
"pages": [
|
|
"beyond/concepts/property-descriptors",
|
|
"beyond/concepts/getters-setters",
|
|
"beyond/concepts/object-methods",
|
|
"beyond/concepts/proxy-reflect",
|
|
"beyond/concepts/weakmap-weakset"
|
|
]
|
|
},
|
|
{
|
|
"group": "Memory & Performance",
|
|
"icon": "bolt",
|
|
"pages": [
|
|
"beyond/concepts/memory-management",
|
|
"beyond/concepts/garbage-collection",
|
|
"beyond/concepts/debouncing-throttling",
|
|
"beyond/concepts/memoization"
|
|
]
|
|
},
|
|
{
|
|
"group": "Modern Syntax & Operators",
|
|
"icon": "wand-magic-sparkles",
|
|
"pages": [
|
|
"beyond/concepts/tagged-template-literals",
|
|
"beyond/concepts/computed-property-names"
|
|
]
|
|
},
|
|
{
|
|
"group": "Browser Storage",
|
|
"icon": "database",
|
|
"pages": [
|
|
"beyond/concepts/localstorage-sessionstorage",
|
|
"beyond/concepts/indexeddb",
|
|
"beyond/concepts/cookies"
|
|
]
|
|
},
|
|
{
|
|
"group": "Events",
|
|
"icon": "bell",
|
|
"pages": [
|
|
"beyond/concepts/event-bubbling-capturing",
|
|
"beyond/concepts/event-delegation",
|
|
"beyond/concepts/custom-events"
|
|
]
|
|
},
|
|
{
|
|
"group": "Observer APIs",
|
|
"icon": "eye",
|
|
"pages": [
|
|
"beyond/concepts/intersection-observer",
|
|
"beyond/concepts/mutation-observer",
|
|
"beyond/concepts/resize-observer",
|
|
"beyond/concepts/performance-observer"
|
|
]
|
|
},
|
|
{
|
|
"group": "Data Handling",
|
|
"icon": "file-code",
|
|
"pages": [
|
|
"beyond/concepts/json-deep-dive",
|
|
"beyond/concepts/typed-arrays-arraybuffers",
|
|
"beyond/concepts/blob-file-api",
|
|
"beyond/concepts/requestanimationframe"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tab": "Community",
|
|
"groups": [
|
|
{
|
|
"group": "Get Involved",
|
|
"icon": "users",
|
|
"pages": [
|
|
"contributing",
|
|
"translations"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"redirects": [
|
|
{
|
|
"source": "/concepts/value-reference-types",
|
|
"destination": "/concepts/primitives-objects"
|
|
}
|
|
],
|
|
"footer": {
|
|
"socials": {
|
|
"github": "https://github.com/leonardomso/33-js-concepts",
|
|
"x": "https://x.com/leonardomso"
|
|
}
|
|
}
|
|
}
|