Peter Kröner
Best of the Worst – the most awful anti-features in JavaScript, ranked!
#1about 2 minutes
Ranking the worst features in JavaScript's history
An introduction to JavaScript's most confusing and sometimes useful anti-features, ranked using a classic internet tier list.
#2about 4 minutes
The unexpected behavior of primitive object wrappers
Primitive wrappers like `new Boolean(false)` create objects that are always truthy, leading to confusing behavior in conditional statements.
#3about 5 minutes
Using the function constructor to access the global scope
The `new Function()` constructor always executes in the global scope, providing a reliable way to bypass locally shadowed global variables like `window` or `undefined`.
#4about 2 minutes
How JavaScript's global scope and environment records work
The global scope is a special environment record that uses the `window` object as a backend for storing variables.
#5about 3 minutes
Why the `with` statement slows down all JavaScript code
The `with` statement prevents static analysis of variable locations, forcing JavaScript engines to disable certain optimizations and making all code potentially slower.
#6about 3 minutes
How new keywords are added without breaking old code
JavaScript introduces new syntax like `for...of` by using contextual keywords, which are only treated as keywords in specific positions to maintain backwards compatibility.
#7about 6 minutes
The many pitfalls and traps of using parseInt
`parseInt` has multiple issues, including returning a float and auto-detecting hexadecimal prefixes, which can lead to unexpected bugs.
#8about 1 minute
A rapid review of other strange JavaScript features
A quick look at other historical oddities like `document.all`, `new Array()`, and deprecated string HTML wrapper methods.
Related jobs
Jobs that call for the skills explored in this talk.
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Java
TypeScript
+1
tree-IT GmbH
Bad Neustadt an der Saale, Germany
€54-80K
Intermediate
Senior
Java
TypeScript
+1
Matching moments
08:07 MIN
Exploring modern JavaScript performance and new CSS features
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
03:31 MIN
The value of progressive enhancement and semantic HTML
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
11:32 MIN
The industry's focus on frameworks over web fundamentals
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
11:10 MIN
The only frontend stack that truly matters
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
04:02 MIN
How a broken frontend culture impacts the web
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
09:00 MIN
Navigating the growing complexity of modern CSS
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
Featured Partners
Related Videos
JavaScript the Grumpy Parts
Rob Richardson
The year 3000, a brief history of Web Development
Lorenzo Pieri
Defeat that legacy monster! Guerilla refactoring with web standards
Peter Kröner
C++ Features You Might Not Know
Jonathan Müller
Catching up on the basics you don't really need that much code
Chris Heilmann
Things I learned while writing high-performance JavaScript applications
Michele Riva
The 2025 State of JavaScript Testing
Daniel Afonso
Explore new web features before everyone else
Nikita Dubko
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.

Visonum GmbH
Remote
Junior
Intermediate
React
Redux
TypeScript


Der STANDARD
Vienna, Austria
Senior
Next.js
TypeScript





