The double tilde ~~ operator in Javascript

šŸ“– Neural networks for Javascript developers

The Neural Networks for JavaScript developers book is almost ready! Learn the basics of AI with TensorFlowJs examples. Join now the presale and get a 15$ coupon off the launching price!

Adding to the list of useful obscure operators in Javascript, today will discuss the double tilde ~~ operator.

What it does is remove everything after the decimal point. Think of it as a way to round a number.

Let's see it in action:

console.log( ~~ 7.34) // 7
console.log( ~~ -11.40) // -11

The full formula is:

const doubleTilde = (x) => {
    if(x < 0) return Math.ceil(x);
    else return Math.floor(x)
}

It also works with strings:

console.log( ~~ "7.34") // 7
console.log( ~~ "-11.40") // -11

For example, this can be used when we generate a random number for a HSL color in Javascript:

const randColor = `hsl(${~~(360 * Math.random())}, 100%, 50%)`

// will output something like "hsl(123, 100%, 50%)" 
// or  "hsl(123, 100%, 50%)"

Under the hood what is happening is that we are applying the single tilde operator twice. So actually, there is no real double tilde operator šŸ˜†.

But, we do have a double asterisk ** operator in Javascript.

šŸ“– Neural networks for Javascript developers

The Neural Networks for JavaScript developers book is almost ready! Learn the basics of AI with TensorFlowJs examples. Join now the presale and get a 15$ coupon off the launching price!


Leave a Reply

Your email address will not be published. Required fields are marked *

Home Screencasts Best of Newsletter Search X

Neural Networks for JavaScript developers
Presale - 15$ free coupon

Hi friend! Before you go, just wanted to let you know that in March 2023 I will be launching the TensorFlow.Js by Example course.

This course will include basic concepts of AI and Neural Networks done with TensorFlowJs such as:

  • Working with datasets
  • Visualizing training
  • Deep Neural Networks in JavaScript
  • Reinforcement Learning
  • Convolutional neural networks
  • and much more ...

Also, there will be a lot of examples as:

  • Object detection
  • Natural language processing
  • Face and voice recognition
  • Gaming AI

Join now the waiting list and get a 15$ coupon off the launching price!

X