Peter Kröner

Best of the Worst – the most awful anti-features in JavaScript, ranked!

Did you know one JavaScript feature makes all your code slower, even if you never use it? Let's rank the language's worst anti-features.

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.

Angular Developer

Picnic Technologies B.V.
Amsterdam, Netherlands

Intermediate
Senior

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Software Engineer

Software Engineer

tree-IT GmbH
Bad Neustadt an der Saale, Germany

Remote
54-80K
Intermediate
Senior
Java
TypeScript
Spring Boot
Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust
Senior Java Developer

Senior Java Developer

Picnic Technologies B.V.
Amsterdam, Netherlands

Senior
Java
Spring
Amazon Web Services (AWS)