JS quirks
# All numbers are floating-point
So 9007199254740992 + 1 is 9007199254740992. You probably should use BigInt for this.
# null is an object. Kind of.
typeof returns "object" for the null type. This is a known issue in JavaScript since its first release.
# Division by zero is not UB
It’s either Infinity or -Infinity. Also there’s 0 and -0. So 1/0 is Infinity and 1/-0 is -Infinity. Division by zero is only undefined for ±0/±0 and ±∞/±∞.
# self vs window
self is a more portable way of using a global object. In browser self defaults to window.