JavaScript

JavaScript

The Dynamic Language for Web and Application Development

JavaScript and ES6+Web Development with JSFrameworks and Libraries (React, Vue, Angular)Client-side and Server-side Programming (Node.js)Data Management and APIs

Articles

What Is JavaScript? – A Journey into the Identity and Origins of JS

Chapter 1 of You Don’t Know JS Yet begins not with syntax or code, but with a philosophical and historical exploration of JavaScript’s identity. It challenges assumptions, clears up myths, and lays the foundation for a deeper understanding of the language. This article distills the chapter’s key insights, from the marketing origins of the name “JavaScript” to the structural pillars of the language and the mindset required to truly know JS.

/article/what-is-javascript-identity-origins-ydkjsy

Surveying JavaScript – A Beginner’s Guide to Core Concepts

This article introduces foundational JavaScript concepts for new developers, adapted from Chapter 2 of You Don’t Know JS Yet: Get Started. It covers how JS treats each file as a standalone program, the nature of values (primitives and objects), and how to determine value types. While not a full reference, this survey lays the groundwork for deeper learning and confident coding.

/article/surveying-javascript-beginners-guide-core-concepts

Declaring and Using Variables in JavaScript – var, let, const, and Scope

In JavaScript, variables are containers for values and must be declared before use. This article explores the three main declaration forms — var, let, and const — and their differences in scope, mutability, and appropriate use cases. It also covers variable declarations in functions and catch blocks, helping developers write clearer and more maintainable code.

/article/declaring-using-variables-javascript-var-let-const-scope

Functions in JavaScript – Definition, Parameters, Return Values, and Structural Variations

Functions are central to JavaScript program structure. This article explores function declarations and expressions, how parameters and return values work, and how functions behave as assignable values. It also covers defining functions as object properties and compares them to class-based syntax. Understanding these forms is key to writing flexible, maintainable code.

/article/functions-in-javascript-definition-parameters-return-values-structural-variations

Coercive Comparisons in JavaScript – Understanding ==, Relational Operators, and Type Conversion

Type coercion is a core feature of JavaScript, especially when it intersects with comparison operators. This article explores how the == operator performs coercive equality, how relational operators like < and > behave with mixed types, and why understanding these behaviors is more practical than avoiding them. Awareness of coercion helps developers write safer, more predictable code.

/article/coercive-comparisons-in-javascript-equality-relational-operators-type-conversion

Organizing Code in JavaScript – Classes, Modules, and Object-Oriented Inheritance

JavaScript offers two major patterns for organizing code: classes and modules. This article focuses on class-based design, including how to define and instantiate classes, encapsulate data and behavior, and use inheritance and polymorphism to extend functionality. Understanding these patterns helps developers write clean, maintainable, and scalable programs.

/article/organizing-code-in-javascript-classes-modules-object-oriented-inheritance

Modules in JavaScript – From Classic Patterns to ES Modules and Structural Differences

Modules in JavaScript, like classes, are designed to group data and behavior into logical units. This article explores the classic module pattern using factory functions, compares it to class-based design, and introduces ES Modules (ESM) introduced in ES6. It explains how modules are defined, exported, imported, and instantiated, and highlights the differences in structure and usage.

/article/modules-in-javascript-classic-patterns-esm-structural-differences

Iteration in JavaScript – The Iterator Pattern, Built-in Iterables, and Standard Data Consumption

Iteration is a foundational pattern for processing data in JavaScript. This article explores the iterator protocol, how to consume iterators using for..of loops and the spread operator, the distinction between iterators and iterables, and how built-in structures like arrays, strings, maps, and sets support standardized iteration. It also shows how to customize iteration for your own data structures.

/article/iteration-in-javascript-iterator-pattern-built-in-iterables-standard-consumption

Closure and this in JavaScript – Scope Memory and Dynamic Execution Context

Closure and this are two foundational and often misunderstood concepts in JavaScript. This article defines closure as a function’s ability to remember variables from its outer scope, and explains how this refers to the dynamic execution context of a function call. Through practical examples, it clarifies the difference between static scope and dynamic context.

/article/closure-this-in-javascript-scope-memory-dynamic-execution-context

Prototypes in JavaScript – Delegation, Prototype Chains, and Dynamic this Behavior

Prototypes in JavaScript provide a mechanism for property delegation between objects. This article explains how prototype chains work, how to create linked objects using Object.create, and how property access and assignment behave in relation to delegation. It also explores how the dynamic nature of this enables prototype-based method reuse across multiple objects.

/article/prototypes-in-javascript-delegation-chains-dynamic-this

Value vs Reference and the Many Forms of Function Definitions

Value vs Reference and the Many Forms of Function Definitions

/article/value-vs-reference-function-definition-forms

Coercive Conditional Comparison and Prototypal Classes in JavaScript – Understanding Implicit Logic and Legacy Inheritance Patterns

This article explores two advanced topics from Appendix A of You Don’t Know JS Yet: how JavaScript performs coercive comparisons in conditional expressions, and how prototypal class patterns were used before ES6 introduced the class keyword. Through practical examples, it clarifies how implicit boolean logic works and how prototype chains enable behavior delegation.

/article/coercive-conditional-comparison-prototypal-classes-javascript-implicit-logic-legacy-inheritance