Operator~ bedeutet bitweise Negation. Oberflächlich betrachtet ist ~~ (umkehren und dann negieren) bedeutungslos. Tatsächlich können Gleitkommazahlen in JS umgewandelt werden.
script>var myArray = new Array();
myArray.push("b"); 🎜>myArray .push("d");
//Jetzt müssen wir zufällig ein Element aus dem Array herausnehmen
var random = myArray[~~(Math.random()*myArray. length)]; // Math.random() gibt eine Pseudozufallszahl zwischen 0 und 1 zurück, die 0 sein kann, aber immer kleiner als 1 ist, [0,1)
var i = 7.94; 🎜>i = ~~i ;
alert(i);
var j = 7.34;
alert(j);
Wenn es kein ~~ gibt, wird die Dezimalzahl zufällig ermittelt und der Dezimalteil ist entfernt, wobei die Ganzzahl übrig bleibt. Wie oben i=7, j=7. Dieser Mechanismus existiert jedoch nicht in C. Eine Gleitkommazahl (Float) kann in C nicht bitweise invertiert werden, und in C kann eine erzwungene Typkonvertierung verwendet werden (in JS gibt es einen solchen Mechanismus jedoch nicht. Gleitkommazahlen werden in Ganzzahlen konvertiert . ) erreicht den gleichen Zweck (Verwerfen des Dezimalteils und Beibehalten des Ganzzahlteils).