January 11th, 2021 × #javascript#webdev#programming
Hasty Treat - A Podcast About Nothing
Hosts Scott and Wes discuss concepts around nothingness in JavaScript including undefined, null, void, never, falsey values, empty arrays, and more.
In this Hasty Treat, Scott and Wes talk about nothing — null, undefined, void, false, 0, '', NaN, [], {}, never — all sorts of values that could mean the things that do not exist.
Prismic - Sponsor
Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax.
LogRocket - Sponsor
LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It's an exception tracker, a session re-player and a performance monitor. Get 14 days free at logrocket.com/syntax.
Show Notes
03:35 - Undefined
- Implicitly nothing
- A variable declared, but not set is undefined
04:25 - Null
- Explicitly nothing
04:41 - Null vs Undefined
- Null has a value of nothing
- Undefined does not have a value
- You can set variables to either
- If you want to set a score variable to nothing, set it to null
- If you want to un-set a value, set it to undefined
- == will check if a value is either null or undefined
05:35 - Void
- In Javascript
- You can pop void in front of calling a function and it will return undefined (even if that function returns a value)
- I've seen it on links that go nowhere (don't do this — use a button)
- To prevent an arrow function from leaking
onSubmit="javascript:void()"
is a quick-n-easy prevent default on forms
- In Typescript
- Void is when you don’t care about what is returned from a function, or if nothing is returned
- A click handler that goes off and does stuff (side effect) can return void
09:15 - Never (in Typescript)
- Some functions will never return:
- Functions that throw errors
- Functions that have infinite loops
- Also, unreachable variables have a type of never
if(true == false) { let var = 'this will never be true'; }
11:05 - Falsy values
- 0, -0, 0n
- false
- '' (empty string)
- Empty array
- Is a value
- Its .length can be falsy
- Empty object
- Is a value
- Its object.keys(object) length can be falsy (0)
Tweet us your tasty treats!
- Scott's Instagram
- LevelUpTutorials Instagram
- Wes' Instagram
- Wes' Twitter
- Wes' Facebook
- Scott's Twitter
- Make sure to include @SyntaxFM in your tweets