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!