Welcome to the JavaScript for Everyone newsletter, a behind-the-scenes look at my work on a course designed to take your JavaScript skills from junior- to senior-level.


The Lander has Landed

JavaScript for Everyone. Launching Autumn 2025

Big news today, uh, Squad! “Team?” I should come up with a collective name for all you die-hard JavaScript for Everyone newsletter enthusiasts. Welcome back by the way, uh, Constructors (no).

Sorry, sorry, I’ll start over. I’m just a little distracted, what with the aforementioned big news and all. The new landing page for the course went live this week, and I tell you, it has met my primary criterion by a mile:

[…] today you’re gonna get your first look at the JavaScript for Everyone branding, and folks, it is gonna be rad as hell. —An update on the course branding

“Rad as hell” indeed, Operandos (no). It’s perfect. You can practically hear the sound of a dozen overlapping attract modes just looking at it. All complements can and should be directed toward the chefs: designed by Jason Bradberry, built by Leanne Renard, and as always, you can read about some of the the gritty implementation details over at Piccalilli. A personal favorite detail is how it sidesteps the boring old “dark mode inverts everything” trope in favor of a toggle more accurately described as “dim/sharp mode” — high contrast when you want it and a more muted, easy-on-the-eyes level of contrast when you don’t. I can’t wait to see how the rest of the course looks with this theming.

Speaking of the course itself, I tell you, this particular distraction couldn’t come at a better time for me. Last week I finished up the Everything There is to Know About Objects (Not Really Actually There is Way More That We Will Cover Later) module (working title). That module concludes with an extremely in-depth look at property descriptors, which are right in my writing strike zone: they open up tons of potential in terms of day-to-day JavaScript development, help make sense of what a property really is. Sure, they’re a little arcane — it can be tricky to make sense of why the [[Writable]] and [[Configurable]] fields aren’t as binary as it feels like they should be, or how a property descriptor can be a data descriptor or an accessor descriptor but not both — but that’s the good stuff, nextSiblings (definitely not). That’s the stuff I really enjoy taking apart.

But that was last week. This week I made myself backtrack to write about regular ol’ variable declarations, which are almost inarguably more important, but also, if I’m being honest, a little less interesting to write about. It’s not all exciting stuff like optional chaining operators, this JavaScript — sometimes you have to go back to the basics: const is a variable that can’t vary, by-reference vs. by-value, all the old standards. The fundamentals. "Eat your vegetables,” y’know, Chat (absolutely not)? At least this gives me an opportunity for a Weirding Module about how you can technically use undefined as an identifier in some contexts, since it isn’t a reserved word. Really! I mean, please don’t — don’t ever — but still, interesting! In the meantime though, there’s nothing left to do but power through a little quality time with my old friend variable hoisting, that old rascal.

Well, unless there’s something else I coul— uh, should be doing. I mean, if there’s one thing better for procrastination than talking about a design you’re really into, it’s building something that “you’ll need sooner or later anyway” — and I do need one such whatsit, come to think of it. I’ve got a branch of the embedded console prototype we talked about a few newsletters back working with CodeMirror 6, which does feel like a significant improvement over 5 — maybe I should change gears and tinker with that a little? Plus, how cool is it gonna look with the new theme?

Screenshot of a Figma window. A self-contained component with the heading “Try it out,” then a line reading “write an expression that adds two and two.” Below, labeled by “Editor,” is an interactive code editor reading 2 + 2e, followed by a “run” button and “reset editor” and “clear console” elements. Below that is, an embedded console containg, on separate lines: a left-facing arrow and 3, a 3, “Error, this is an error” with a red background, and  “warning: this is a warning” with a slightly darker background. Below that, a block with an X icon reads “you got this wrong 4 times, so here’s a hint” followed by, in smaller type, “Spin around five times while chanting ‘stack overflow,’ then tap your heels together twice.”

Yeah. Yeah, that’s what I’ll do today. Honestly, that’s the responsible thing to do, when you get right down to it.

See you in two weeks, Everyone (there it is).

Course Statistics

  • Emdashes: 491 (Had a typo in the previous count; that should’ve been 365)
  • const: 255
  • let: 83
  • var: 0 (For now.)
  • Times I’ve Had to Check to Make Sure I Hadn’t Already Described Something as Possible Per the "Air Bud” Rule: 2
  • Times That I, In Fact, Already Had: 1

If you enjoyed reading this post, sign up to get these (plus news about the course) delivered to your inbox.