In javascript undo and undo ~~ doesn't make sense
- 2020-03-30 02:33:59
- OfStack
The operator ~, is the meaning of bit inverted, on the surface ~~ (take the inverse and then take the inverse) does not make sense, in fact, JS can be converted to integer floating point.
<html>
<script>
var myArray = new Array();
myArray.push("a");
myArray.push("b");
myArray.push("c");
myArray.push("d");
//Now I'm going to randomly pick an element out of the array
var random = myArray[~~(Math.random()*myArray.length)]; //Math.random() returns a pseudo-random number between 0 and 1, which may be 0 but is always less than 1, [0,1].
var i = 7.94;
i = ~~i;
alert(i);
var j = 7.34;
j = ~~j;
alert(j);
</script>
</html>
As shown above, if there is no ~~, then the random result is a decimal, and is to remove the decimal part of the decimal, keep the integer. I =7, j=7. However, such a mechanism does not exist in C, where you cannot invert a float by bit, and in C you can use casts (which JS does not have, floating point to integer) to achieve the same purpose.
< img SRC = "border = 0 / / files.jb51.net/file_images/article/201404/20140406170509.gif? 20143617540 ">