Xah Web Dev Blog
WEB MONKEY CANCER
highlights
- for coders. functional programing.
- it is unfortunate, that the javascript committee did not pass the pipe syntax.
- lots resistance from the industrial coding dolts.
- for coders. webdev.
- very annoying, there is no way to determine what font is actually used, by JavaScript.
- unless you are using webfonts.
all new.
- JS: Iterator.prototype.map
- JS: Iterator.prototype.forEach
- JS: Iterator.prototype.filter
- JS: Iterator.prototype.reduce
- JS: Iterator.prototype.take
- JS: Iterator.prototype.drop
- JS: Iterator.prototype.every
- JS: Iterator.prototype.some
- JS: Iterator.prototype.find
- JS: Iterator.prototype.flatMap
- JS: Iterator.prototype.toArray
updated.
Terminology, iterator interface or iterator protocol
- For Coders. Advanced JavaScript.
- Terminology, iterator interface Or iterator protocol?
- The ECMAScript calls it interface.

tail call optimization is still not done
- For Coders. JavaScript.
- This is insulting.
- After 10 years in the spec, tail call optimization is still not done?

- For coders. Advanced JavaScript.
- You should never use the __proto__ property.
- Instead, use Reflect.getPrototypeOf or Reflect.setPrototypeOf.
updated.
major update on ECMAScript news. still working on.
- π JS: ECMAScript New Features
- π JS: ECMAScript 2015
- π JS: ECMAScript 2016
- π JS: ECMAScript 2017
- π JS: ECMAScript 2018
- π JS: ECMAScript 2019
- π JS: ECMAScript 2020
- π JS: ECMAScript 2021
- π JS: ECMAScript 2022
- π JS: ECMAScript 2023
- π JS: ECMAScript 2024
minor updates.
updates.
misc updates
- JS: Number
- JS: RegExp Flag
- JS: Array.prototype.join (to string)
- JS: Object.fromEntries (Iterable to Object)
- JS: Convert Decimal, Hexadecimal
- JS: Convert Decimal, Binary
- JS: Number.prototype.toString (Number to String)
- JS: Number.parseInt (String to Number)
- JS: Number.parseFloat (String to Number)
- JS: JSON.stringify
added example for map.
lots updates
- JS: Array.prototype.concat
- JS: Array.prototype.entries
- JS: Array.prototype.join (to string)
- JS: Array.prototype.keys
- JS: Array.prototype.reduce
- JS: Array.prototype.reduceRight
- JS: Array.prototype.slice
- JS: Array.prototype.splice
- JS: Array.prototype.toSpliced
- JS: Array How-To
- JS: Range Function for Array π
- JS: String.prototype.matchAll
- JS: String.prototype.lastIndexOf
- JS: String.prototype.indexOf
- JS: String.prototype.includes
- JS: Set.prototype.values
- JS: Set.prototype.keys
- JS: Map.prototype.values
- JS: Set.prototype.entries
- JS: Map.prototype.keys
JavaScript Complexity
xtodo- coding js is like riding on a highway with a thousand potholes.
- ur brain is tied to the potholes.
- the final code, is functional but incomprehensible.

JavaScript abstract class
- fuck javascript, now becoming exceeding complex.
- now it sports abstract class, like java.
- so coding js now is pure rote, like the unix fucks.
- fuck js, and the industry coding dolts n elite hacker idiots.

JavaScript set-like object
- faaking complete idiotic javascript.
- now they have a set-like object.
- array-like is not confusing enough.

new.
updates and new articles
- JS: Nullish Coalescing Operator (defined or)
- JS: Logical Assignment Operators
- JS: Assignment Operators
- JS: Boolean Operators
- π JS: globalThis
update and new pages
added Table of Contents
updates
updates
major update on class.
misc updates
added complete table of contents
- for coders. weddev.
- this is marquee done with css animation.
- it is actually not easy to do.
- hard to make the marquee stay within a box.
- you will need to create margins with opaue background color to hide the text before they move into the marquee area.
- for coders.
- Ancient marquee element.
- Firefox stopped supporting it.
- Invented by Microsoft around 1998.
- An era of free for all of inventing tags to lock-in users.
- Begian by Firefox mozilla netscape skum's blink.
- HTML: Marquee, Scrolling Text
updates
- CSS has taken a life of its own.
- Here's some old tech, updated.
- Position, lets you fix a box to window, or to a parent element, or adjust position.
- It also lets you create a layer, so you can use it to creat raining effect with JavaScript, or tooltips annotation.
examples
best way to adjust HTML position
transform: translate(0px, -6px);
- CSS: Transform
- CSS Image Rollover.
- Ancient tech. from late 1990s.
- It was a mystery on how it works till i started to learn CSS in 2005.
- CSS: Image Rollover
- The glorious history of CSS.
- CSS1 vs CSS2.
- year 2005, fresh news, fashionable, you need to know.
- CSS1 and CSS2 Differences
- the nasty thing apple introduced to html
- HTML: Viewport Meta Tag
- https://x.com/xah_lee/status/1914825957770453244
- Massive update in past days on CSS.
- AKA Cascading Style Sheet.
- the tutorial for mathematicians.
- 125 pages syntax color scheme changed, and much update.
- one rarely known css fact is that the meaning of percentage value depend on which element it is used on.
- CSS: Percentage Value
major rework of the nav panel
event delegation
- for real rocket scientists, on advanced web dev, JavaScript, DOM.
- yesterday, switched to use event delegation for my unicode pages for tooltips aka balloon or hover popup.
- event delegation, so called, is most useful, when u have lots items on a page that needs event.
- but actually, even few hundred items having hover and mouse events, is not a problem at all.
- but here's more tech detail. for advanced experts.
- when u have elements that need say mouse hover event.
- and these element are added dynamically.
- u need a way to add event when new are there.
- it's a problem.
- even html collection is live object, but it doesn't auto add event.
- this is why, u use event delegation.
- example of this is this page
- Unicode Search π
- when you search, lots new items are in result.
- you need to add event handler for each.
- but impossible unless you use some kinda change detection lib.
- this problem is solved, by simply put the event to body, and in event handler function, just check if right element is hit.
- JavaScript, one of the worst programing language.
- And one worste part is its date method.
- Exceedingly complex.
- Immerse and savor it.
- JS: Array.prototype.flat
- JS: Deep Copy Array or Object π
- JS: Convert Map to Object π
- JS: Factorial π
- JS: Format Number
- JS: Function Pipe π
- JS: Test If Object is Iterable or Iterator π
- JS: Test is Object Type π
- JS: Test Equality of Map Objects π
- JS: Map Filter π
- JS: Swap Key Value of Map π
- JS: Sort Map π
- JS: Map Substract π
- JS: Truncate Map π
- JS: Convert Object to Map π
- JS: Add Method to Prototype
- JS: Random Array Element, Randomize Array π
- JS: Range Function for Array π
- JS: Swap Object Key Value π
- JS: Set Union, Intersection, Difference π
- JS: Split Array π
- JS: Count Chars in String π
- JS: Test Equality of Array and Object by Content π
- JS DOM: textContent, innerHTML, innerText, nodeValue
- JS: Char to UTF-16 Encoding π
- JS: Char to UTF-8 Encoding π
- SVG: Circle Arc
- CSS: Computed Style
- JS: Difference Between Array vs Array-Like Object
- JS: class (keyword)
- JS: Use Object.create to Emulate Constructor