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?
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
: 255let
: 83var
: 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