DEV Community

Andrei Iatsuk
Andrei Iatsuk

Posted on

4 2

Interesting way to inverse number in JavaScript

It’s binary inversion. ~n = -(n + 1)

Image description

Top comments (1)

Collapse
 
casraf profile image
Chen Asraf

There is a nice trick of turning indexOf results into booleans involving this method.
Take the following code:

const txt = 'contains';
const contains = txt.indexOf('contains') > -1;
Enter fullscreen mode Exit fullscreen mode

Can be turned into:

const txt = 'contains';
const contains = ~txt.indexOf('contains');
Enter fullscreen mode Exit fullscreen mode

Since -1 will turn to 0 it will be resolved as false when doing a naive bool comparison, and other numbers (0 and up) will change into numbers which will be considered true.

I personally prefer to have things more readable, and also there are standard methods that aim to remove the need for these types of checked (includes for example), so I don't use it at all. But it's a nice thing to think about :)

The Most Contextual AI Development Assistant

Pieces.app image

Our centralized storage agent works on-device, unifying various developer tools to proactively capture and enrich useful materials, streamline collaboration, and solve complex problems through a contextual understanding of your unique workflow.

👥 Ideal for solo developers, teams, and cross-company projects

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay