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.
📖 50 Javascript, React and NextJs Projects
Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.
📖 50 Javascript, React and NextJs Projects
Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.