Xah JS Blog

Fuck JavaScript

2026 blog highlights

work in progress
work in progress

lots misc updates.

new and misc updates.

In the object reference pages, each of standard object and their prototype function pages, the left panel now is generic JavaScript panel, not object reference items. This is more useful. To see a list of all standard object, just goto the object reference page.

finally, finished the proxy tutorial of 2015.

updated.

work in progress
js subclass problem 2026-09-30 1958e ll
js subclass problem 2026-09-30 1958e ll

from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/extends

major rewrite. added class private fields etc of js 2022.

updates.

work in progress

the JavaScript warts, added in 2022 even, seems unending.

now u got class jargons of fields, members, properties, methods. very confusing. (and instance version of each also known as prototype members, and static version of each). and private version of each. (you wanna call them private VARIABLES, because that is what they really are. but they are fields, and you got static version of private fields.)

you also got static blocks, and init blocks.

the complexity surpasses the machinery of object oriented programing in java .

and you got this special case syntax in-operator (#x in obj) that can only be used in class body. am currently unsure wtf it is needed, besides the abuse of in operator ad-hoc syntax cancer like cpp. (heavy asking ai to halp this puny meat man but takes long time to understand) also currently unsure what static block and init blocks are good for. working on it.

js class field member 2026-09-27 272c8 ll
js class field member 2026-09-27 272c8 ll

updated.

updated

updated.

updates

update all string related pages.

update all array related pages and more.

updating all pages in

also updated:

and lots randomish updates

updated all pages in the object section.

also updated this and all links in it:

new index pages.

updates:

what's the qem in chrome css

what's the qem in chrome css.

h3 {
 display: block;
 font-size: 1.17em;
 margin-block-start: 1__qem;
 margin-block-end: 1em;
 margin-inline-start: 0;
 margin-inline-end: 0;
 font-weight: bold;
}
chrome css qem 2026-09-11 1da50 ll
chrome css qem 2026-09-11 1da50 ll

JavaScript object.created is badly designed.

to write

{ k: 1 }

you have to

Object.create( Object.prototype, { k: { value: 1, enumerable: true, configurable: true, writable: true } } )

so nobody use it.

misc updates

pattern matching coming to JavaScript

js pattern matching 2026-09-10 16349 ll
js pattern matching 2026-09-10 16349 ll

css nesting syntax is fantastic. make things easier to read.

3 years ago, i was against. because non-linear linear syntax has advantages like in shell languages. nested syntax is complicated to edit.

css nesting syntax 2026-09-10 1d810 ll
css nesting syntax 2026-09-10 1d810 ll

major rewrite.

major rewrite:

minor updates. make the basics sections better.

minor updates

remove of redundant === true in assertion.

remove all redundant === true in console.assert. was using them because i thought it provides clarity, symmetric with === false. but now i think shorter code is more clear.

old article. now they been fixed

more updates.

major rewrite on js class.

updates:

old blog article now on its own page.

updates.

work in progress

Math essence of promise

finally unstand promise after 10 years.