Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
JavaScript Conditionals: if/else, the Ternary Operator and switch
We use examples to cover if/else if/else chains, the ternary operator, fall-through and break in switch, truthy/falsy traps in conditions, the early return idea and writing readable conditions.
JavaScript Operators: Arithmetic, Equality, Logical Operators and Truthy/Falsy
We cover arithmetic and assignment operators, comparisons, == versus === and coercion, truthy/falsy values, short-circuiting with && and ||, the ?? operator and precedence pitfalls.
JavaScript Data Types: Primitives, Objects and typeof
We meet JavaScript's seven primitive types and objects, and use examples to see why typeof says "object" for null, why primitives are immutable, and how values differ from references.
JavaScript Variables: let and const, Block Scope and the TDZ
We declare variables with let and const, and use examples to see reassignment versus mutation, block scope, naming rules, why var has been retired, and the TDZ.
Your First JavaScript Script: The script Tag, defer, async and DevTools
We link JavaScript to HTML inline and as an external file, see how defer and async differ, and try console methods, reading error messages and our first breakpoint in DevTools.
What Is JavaScript? How It Runs in the Browser, ECMAScript and Your First Line
We learn JavaScript's place on a web page, how ECMAScript and TC39 evolve the language and what browser engines do, then write our first lines in the console and change a page live.
Angular 22: OnPush by Default, Stable Signal Forms and a File-by-File Comparison with Angular 12
In Angular 22 OnPush is the default, Signal Forms and the resource APIs are stable, and HttpClient uses Fetch. We also cover the yearly major cadence and a file-by-file diff with an Angular 12 project.
Angular 21: Zoneless by Default, Experimental Signal Forms and Vitest
In Angular 21 new projects start without Zone.js, Signal Forms arrive as an experiment and become [formField] in 21.1, and Vitest becomes the default test runner. We compare it all with Angular 12.
Angular 20: Stable Signal APIs, httpResource and the New File Naming
In Angular 20, effect, toSignal and linkedSignal become stable, resource swaps request for params, httpResource arrives, app.ts replaces app.component.ts and *ngIf gets deprecated.
Angular 19: Standalone by Default, linkedSignal and Data Loading with resource()
In Angular 19 you no longer write standalone: true. We compare linkedSignal for dependent state and the experimental resource() and rxResource for data loading with the Angular 12 way.
What's New in Angular 18: Zoneless Change Detection, @let and Stable Control Flow
Experimental zoneless change detection in Angular 18, control flow and @defer going stable, @let from 18.1, ng-content fallback content, unified form events and redirect functions.
What's New in Angular 17.x: input(), model(), output() and Signal Queries
input(), input.required(), model(), output() and the viewChild()/viewChildren() signal queries from Angular 17.1–17.3, side by side with their Angular 12 @Input, @Output and @ViewChild counterparts.