![]() Today’s issue: Expo never sleeps, Practical-ish Elegance, and life lessons from Daniel Tiger. Welcome to #165 ![]() The Main Thing![]() Me trying to figure out these hydration errors The Next NextLast October, Next.js 13 introduced its new The router came with support for React Server Components, Layouts, Streaming, and Suspense for Data Fetching — which prompted React Core Team member (and recent Vercel hire), Andrew Clark, to christen Next 13 as “the real React 18 release.” Fast forward to today, and the Here are the highlights:
Bottom Line: Last we tried, Next’s app directory still had some rough edges, but we’re happy to see some progress.
![]() Our Friends |
![]() | Senior or Staff Front-end Engineer | ||
| |||
Close.com is looking for an experienced React developer to help design and implement major user-facing features. Close is a 100% globally distributed team of 70 happy people, dedicated to building a product our customers love. |
FusionAuth adds login, registration, SSO, MFA, and a bazillion other features to your app in days - not months.
Why does this code work?
const friends = ['Alex', 'Ben', 'Lynn']
friends.hasOwnProperty('push') // false
Specifically, why does friends.hasOwnProperty('push')
work even though friends
doesn’t have a hasOwnProperty
property and neither does Array.prototype
?
DevTwitter has been a little aggressive lately, so as a reminder, here are our two favorite (first, second) videos for keeping perspective.
CarbonQA provides QA services for dev teams, so you’ll never have to do it yourself again. They work in your tools, talk with your team on Slack, and let your devs be devs — so you never have to waste engineering time on testing again 🙏. [sponsored]
CS classes teach you all about advanced topics within CS, from operating systems to machine learning, but there’s one critical subject that’s rarely covered: proficiency with tools. The Missing Semester of Your CS Education is a free resource that aims to fix that.
Alex MacArthur wrote about More Elegant Destructuring with JavaScript Generators, which he describes as “practical-ish.” What a coincidence, Practical-ish Elegance is the working title of my memoir.
ReacTree is a VS Code extension that lets you easily view your React components in a hierarchical tree.
Expo 48 just launched with some cool new features like Expo Image and Expo Router. And just to prove that sleep is overrated, Evan Bacon also made this video about what it might look like for Expo to add React Server Components to iOS and Android.
TanStack Bling is a set of framework-agnostic transpilation utilities for client/server RPCs, env isolation, funcsharding, islands, module splitting, and more. OK one of those words I made up.
const friends = ['Alex', 'Ben', 'Lynn']
friends.hasOwnProperty('push') // false
As mentioned earlier, if you look at Array.prototype
, it doesn’t have a hasOwnProperty
method. How then, does the friends
array have access to hasOwnProperty
?
The reason is because the Array
class extends the Object
class. So when the JavaScript interpreter sees that friends
doesn’t have a hasOwnProperty
property, it checks if Array.prototype
does. When Array.prototype
doesn’t, it checks if Object.prototype
does, it does, then it invokes it.
const friends = ['Alex', 'Ben', 'Lynn']
console.log(Object.prototype)
/*
constructor: ƒ Object()
hasOwnProperty: ƒ hasOwnProperty()
isPrototypeOf: ƒ isPrototypeOf()
propertyIsEnumerable: ƒ propertyIsEnumerable()
toLocaleString: ƒ toLocaleString()
toString: ƒ toString()
valueOf: ƒ valueOf()
*/
friends instanceof Array // true
friends instanceof Object // true
friends.hasOwnProperty('push') // false