---
title: "undefined vs null in JavaScript"
publication: "JavaScript Weekly"
issue: 523
published_at: "2021-01-29"
canonical_url: "https://javascriptweekly.com/issues/523"
---

Plus modding Factorio with TypeScript, a desktop app for playing with JavaScript, and a new CKEditor release. |        

#523 — January 29, 2021 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/523)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/cgoje1baa4qsijrqqoqq.jpg)](https://ui.toast.com/weekly-pick/en_20210126)  

[TOAST UI Chart 4.0 Released](https://ui.toast.com/weekly-pick/en_20210126) — A MIT licensed chart library equally suited for vanilla JavaScript, Vue or React use cases. It’s responsive, easy to theme, and now dependency free meaning it clocks in at just 67KB gzipped. It now supports _live updating_ of charts across several chart types too. Want demos? [Here’s lots of demos](https://toastui-chart4.netlify.app/?path=/story/chart-area--basic) and the [GitHub repo](https://github.com/nhn/tui.chart). 

NHN Corp   

[`undefined` vs. `null` Revisited](https://2ality.com/2021/01/undefined-null-revisited.html) — Most languages include a concept of a ‘non-value’ (often called `null` or `nil`) but JavaScript has _two_ in the form of `undefined` and `null`. Dr. Axel analyzes their differences and where and why they’re used. 

Dr. Axel Rauschmayer   [![\](https://copm.s3.amazonaws.com/c27afcb8.png)](https://astra.datastax.com/register?utm_source=JSWeekly&utm_medium=display&utm_campaign=jsweekly_1-29) 

[Combining React, GraphQL, NoSQL and Serverless](https://astra.datastax.com/register?utm_source=JSWeekly&utm_medium=display&utm_campaign=jsweekly_1-29) — Connect your React frontend to an automatically generated GraphQL data access API for your NoSQL DBaaS in < 5 minutes. Yep, that’s Apache Cassandra on DataStax Astra: the proven, globally distributed, highly available cloud database. Try our serverless beta. | [No credit card, free to 5GB](https://astra.datastax.com/register?utm_source=JSWeekly&utm_medium=display&utm_campaign=jsweekly_1-29). 

DataStax Astra sponsor   

[Deno 1.7 Released](https://deno.land/posts/v1.7) — Node’s younger cousin comes boasting new features and improvements. A big update is that `deno compile` (which lets you compile complete JavaScript apps to a single executable) is more efficient with support for cross compilation and ~60% reduced compiled size. → _[Via our Deno newsletter](https://denoweekly.com)_. 

Bartek Iwańczuk and Luca Casonato   

[Cypress vs Selenium vs Playwright vs Puppeteer Speed Comparison](https://blog.checklyhq.com/cypress-vs-selenium-vs-playwright-vs-puppeteer-speed-comparison/) — If you’ve got some browser automation to do, particularly around testing, you now have quite a few options, but how do they compare in terms of speed? Spoiler: [Playwright](https://github.com/microsoft/playwright) comes out of it looking good. 

Giovanni Rago (Checkly)   

[10 Bad TypeScript Habits to Break This Year](https://startup-cto.net/10-bad-typescript-habits-to-break-this-year/) — Unsurprisingly, given the title, this is _very opinionated._ 

Daniel Bartholomae     

Quick Bits 

- A quick round up of features [coming to ES2021](https://dev.to/jsdev/es-2021-features-3edf) – we'll be doing a bigger feature on this soon.
- WebRTC is [now a W3C and IETF standard.](https://web.dev/webrtc-standard-announcement/)
- A month-by-month look back at [what happened in 2020](https://deno.land/posts/deno-in-2020) with the Deno project.
- [Node 15.7.0](https://nodejs.org/en/blog/release/v15.7.0/) has been released.
- [JavaScript benchmark results](https://twitter.com/dhh/status/1354802203756617732) on the latest Android phones are embarrassing compared to iOS devices, says the creator of Ruby on Rails.  

💻 Jobs  

[JavaScript Developer at X-Team (Remote)](https://x-team.com/remote-javascript-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=js) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more. 

X-Team   

[Find Your Next Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 

Hired   

📖 Articles, Opinion & Tutorials  

[A Walkthrough of Migrating MaxRozen.com from Gatsby to Next.js](https://maxrozen.com/walkthrough-migrating-maxrozen-com-gatsby-to-nextjs) — There’s no shortage of “how to use Next.js” or “how to use Gatsby” articles but moving _between them_ is both trickier and less commonly seen. 

Max Rozen   

[Get Started with Modding Factorio using TypeScript](https://cdaringe.github.io/factorio-type-kit/posts/get-started) — [Factorio](https://factorio.com/) is a popular factory building game (beware, I’m told it can be a _huge_ timesuck) and it can be modded using Lua. Luckily, you can compile TypeScript to Lua so there are some neat modding opportunities for us. [factorio-type-kit](https://github.com/cdaringe/factorio-type-kit) helps make it possible. 

Christopher Dieringer   

[Creating Custom RxJS Operators](https://tane.dev/2021/01/creating-custom-rxjs-operators/) — RxJS is a key part of Angular (though it can be used separately to it too) and it provides a powerful way to work with data using pipelines and operators. So what if you want to create an operator of your own..? 

Tane Piper   

[An Introduction to the Rollup.js Bundler](https://www.sitepoint.com/rollup-javascript-bundler-introduction/) — [Rollup](https://rollupjs.org/guide/en/) is a popular ES module oriented module bundler. 

Craig Buckler   

[A Big List of HTTP Static Server One-Liners](https://gist.github.com/willurd/5720255) — Want to spin up a quick HTTP server locally? There’s a _lot_ of ways to do it and this list is updated on occasion. 

William Bowers   

[The Ultimate Guide to Cardinality for Observability](https://go.lightstep.com/register-guide-to-cardinality-co21.html?utm_campaign=js&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Rendering Colorful Twisted Spheres with Three.js](https://tympanus.net/codrops/2021/01/26/twisted-colorful-spheres-with-three-js/) — Learn how to deform and color spheres to create an interesting animation with Three.js. 

Mario Carrillo   

[Getting Started with Netlify Functions for Angular](https://www.netlify.com/blog/2021/01/25/getting-started-with-netlify-functions-for-angular/) — A guide to the first steps of adding serverless functions to an Angular application using Netlify Functions (which itself is built on top of AWS Lambda). 

Tara Z. Manicsic (Netlify)   

[Using `fetch` with TypeScript](https://kentcdodds.com/blog/using-fetch-with-type-script) 
Kent C Dodds   

[Building a Range Slider with SVGs in Angular](https://medium.com/javascript-in-plain-english/building-a-range-slider-with-svgs-in-angular-f67fde71d161) 
Marcus Revaj     

🛠 Code & Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)    

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/rsm2n3q9hmw69x1ikgc2.jpg)](https://runjs.dev/)  

[RunJS: A JavaScript 'Scratchpad' Desktop Tool](https://runjs.dev/) — Write and run JavaScript (or TypeScript!) instantly whether to learn, test, create screencasts or explanatory tweets, or just fiddling around generally. Available for macOS, Windows, and Linux. It’s seen a few releases since we first mentioned it over a year ago. 

Luke Haas   

[react-editor-js: Unofficial Editor.js Component for React](https://github.com/Jungwoo-An/react-editor-js) — [editor.js](https://editorjs.io/) is a block-based content editor and this makes it easier to use with React. Check out the CodeSandbox [demo](https://codesandbox.io/embed/react-editor-js-23opz). 

Jungwoo An   

[Fast and Reliable Feature Management for the Modern Enterprise](http://launchdarkly.com/?utm_source=cooperpress&utm_medium=display&utm_campaign=q4-cooperpress) — Built for Engineering Teams. Easy Implementation. Designed for Enterprise Scale. Try LaunchDarkly for free today. 

LaunchDarkly sponsor   

[Source Map Visualization: Upload and View JavaScript/CSS Source Map Data](https://evanw.github.io/source-map-visualization/) — You can upload your own source map file or load the example file to see how this works. 

Evan Wallace   

[CKEditor 5 v25.0.0 Released](https://ckeditor.com/blog/CKEditor-5-v25.0.0-with-flexible-annotations-improved-text-blocks-handling-and-performance-fixes/) — A very long-standing GPL-licensed (with commercial option) WYSIWYG HTML editor control ([demos here](https://ckeditor.com/ckeditor-5/demo/)) has introduced annotations (for collaborative editing) and improved formatting of large text blocks. 

Bartek Biedrzycki and Anna Tomanek   

[vue-easytable 2.0: A Flexible Vue 2.x Table Component](http://doc.huangsw.com/vue-easytable/#/en/doc/intro) — The site has plenty of examples and it’s [easy to get going.](http://doc.huangsw.com/vue-easytable/#/en/doc/start) [v2.0](https://github.com/Happy-Coding-Clans/vue-easytable/releases/tag/2.0.0) is a complete rewrite from v1.0. [GitHub repo](https://github.com/Happy-Coding-Clans/vue-easytable). 

vue table 组件   

[Cheval 2.0: 'Copy to The Clipboard' using JavaScript Without Writing JS](https://github.com/ryanpcmcquen/cheval) — If you want to keep things _really_ simple but offer a “copy to the clipboard” feature on your pages, this takes care of the whole thing once you’ve added some classes to a couple of HTML elements. 

Ryan McQuen   

[post-me: Communicate with Web Workers and Other Windows](https://github.com/alesgenova/post-me/) — A promise-based API for an app and its child workers or windows to expose methods and custom events to each other. 

Alessandro Genova   

[Scout APM - Leading Edge Performance Monitoring Starting at $39/Month](https://ter.li/du1zzq) — Streamline troubleshooting with real-time alerts & tracing logic that ties issues to source code. Try free for 14 days. 

Scout APM sponsor   

[vue-content-loader 2.0: SVG-based 'Loading Placeholder' Component](https://github.com/egoist/vue-content-loader) — A Vue port of Julian Ćwirko’s [react-content-loader](https://github.com/danilowoz/react-content-loader) which is also updated. 

Kevin Hazy     

**🆕 Quick releases:** 

- [electron-store 7.0](https://github.com/sindresorhus/electron-store/releases/tag/v7.0.0) — Data persistence for Electron apps.
- [Sequelize 6.5.0](https://github.com/sequelize/sequelize/releases/tag/v6.5.0) — SQL ORM for Node.js.
- [Electron React Boilerplate 2.2](https://github.com/electron-react-boilerplate/electron-react-boilerplate)
- [Dropbox SDK for JavaScript 9.0](https://github.com/dropbox/dropbox-sdk-js/releases/tag/v9.0.0)
- [GitHub.js 3.4](https://github.com/github-tools/github) — High level GitHub API wrapper for the browser.
- [npm 7.5.0](https://github.com/npm/cli/releases/tag/v7.5.0)
- [billboard.js 2.2.0](https://netil.medium.com/billboard-js-2-2-0-release-gauge-enhancements-pie-outerradius-more-407118914fbc) — Chart library based on D3.js.          

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/peterc) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
