Search
Avoiding those dang cannot read property of undefined errors
13.2.2019
Uncaught TypeError: Cannot read property 'foo' of undefined. The dreaded error we all hit at some point in JavaScript development. Could be an empty state from an API that returns differently than you expected. Could be something else. We don’t know because the error itself is so general...
A Funny Thing Happened on the Way to the JavaScript
12.2.2019
Around this time last year, I wrote an article about the JavaScript learning landscape. Within that article, you’ll find my grand plans to learn JavaScript — complete with a link to a CodePen Collection I started for tracking my progress, and it even got dozens of comments cheering me on.
Like most...
10 Amazing JavaScript Games In Under 13kB of Code
7.2.2019
A collection of awesome browser games, each one masterfully crafted with only 13 kilobytes of code
prefers-color-scheme: CSS Media Query
28.1.2019
One device and app feature I’ve come to appreciate is the ability to change between light and dark modes. If you’ve ever done late night coding or reading, you know how amazing a dark theme can be for preventing eye strain and the headaches that result. macOS recently implemented...
React indeterminate
22.1.2019
I’ve fallen in love with React.js and JSX over the years; state-based rendering and a logical workflow have made me see the light of this modern framework. That doesn’t mean I don’t sometimes get a bit frustrated that the “simple” things seem harder than they should...
STAR Apps: A New Generation of Front-End Tooling for Development Workflows
18.1.2019
Product teams from AirBnb and New York Times to Shopify and Artsy (among many others) are converging on a new set of best practices and technologies for building the web apps that their businesses depend on. This trend reflects core principles and solve underlying problems that we may share, so...
Does it mutate?
18.1.2019
This little site by Remy Sharp's makes it clear whether or not a JavaScript method changes the original array (aka mutates) or not.
I was actually bitten by this the other day. I needed the last element from an array, so I remembered .pop() and used it.
const arr = ["doe", "ray", "mee"];
const...
JavaScript Labels
15.1.2019
No matter how long you’ve been a JavaScript developer, there will always be language features that you didn’t know about until you saw them in a fringe piece of code. Your reaction generally is a bit like: One of those features I see developers quizically trying to figure out...
Jak nejlépe spočítat faktoriál v JavaScriptu?
4.1.2019
Nedávná diskuse na Facebooku mě přiměla, abych toto téma prozkoumal do větších detailů, než mi umožňovaly tamní komentáře. Tato otázka totiž kupodivu nemá jednoduchou odpověď. Když o ní začnete více přemýšlet, ponoříte se do některých zajímavějších oblastí JavaScriptu, které možná ne všichni znají
Background Sync with Service Workers
3.1.2019
Service workers have been having a moment. In March 2018, iOS Safari began including service workers — so all major browsers at this point support offline options. And this is more important than ever — 20% of adults in the United States are without Internet at home, leaving these...
Nested Destructuring
25.12.2018
Destructuring in JavaScript can initially feel confusing but the truth is that destructuring can make your code a bit more logical and straight forward. Destructuring does look a bit more complex when you’re looking for a property several objects deep, so let’s have a look at how to...
Force Download with JavaScript
24.12.2018
Force download scripts have been an important part of internet usability for a long time.  I can attest to that by the number of times I’ve implemented this feature on the server side and the popularity of my PHP Force Download post, even to this day.  With the web world having...
JavaScript waitForever
10.12.2018
Writing mochitests for new features in DevTools can be difficult and time-consuming. There are so many elements interacting in an async manner that I oftentimes find myself using the debugger to debug the debugger! In the case where it’s unclear what interaction isn’t working...
Get Viewport Lines and Columns in CodeMirror
27.11.2018
CodeMirror is an amazing utility for presenting code in a browser environment. Syntax highlighting, widgets, and a number of advanced functions make it a unique, useful tool. When using CodeMirror inside the Firefox DevTools debugger, I found that adding hundreds of column breakpoint widgets...
Object.fromEntries
9.11.2018
The Object object has been buffed with useful methods over the past few years. Object.keys, Object.values, Object.freeze, and Object.assign all address frequently desired functionality. One of the new Object methods is fromEntries, which accepts a Map or map-like array nesting and converts it...
How to Get and Set CSS Variable Values with JavaScript
8.10.2018
CSS variables are a very welcome addition to the language, despite them being incredibly basic. Sure we could use SASS or stylus but languages should never count on developers relying on frameworks and toolkits to accomplish what we know we need. And just like every other part of a webpage,...
Build a state management system with vanilla JavaScript
25.7.2018
Managing state is not a new thing in software, but it’s still relatively new for building software in JavaScript. Traditionally, we’d keep state within the DOM itself or even assign it to a global object in the window. Now though, we’re spoiled with choices for libraries and frameworks to help...
Anatomy of a malicious script: how a website can take over your browser
13.7.2018
By now, we all know that the major tech behemoths like Facebook or Google know everything about our lives, including how often we go to the bathroom (hence all the prostate medication ads that keep popping up, even on reputable news sites). After all, we’ve given them permission to do so,...
Jak jsme přestavěli javascriptovou aplikaci, aby jí i roboti rozuměli
29.6.2018
Popíšeme vám, jak jsme náš projekt původně postavený na Angularu upravili, aby byl snadno dostupný i pro roboty
React Node Flow
27.6.2018
Flow, the static type checker used in many React projects, feels like a gift and a curse at times; a gift in that it identifies weaknesses in your code, and a curse that sometimes you feel like you’re needlessly adjusting your code to satisfy Flow. I’ve grown to appreciate Flow...