연산자 ~는 표면에서 비트 역수를 의미하며, (역 및 역수)는 의미가 없지만 실제로 부동 소수점 숫자는 JS에서 정수로 바뀔 수 있습니다.
코드 사본은 다음과 같습니다.
<html>
<cript>
var myArray = new Array ();
myArray.push ( "a");
myarray.push ( "b");
MyArray.push ( "C");
myArray.push ( "d");
// 이제 배열에서 요소를 무작위로 추출해야합니다.
var random = myArray [~~ (math.random ()*myArray.length); //math.random (); [0, 1)
var i = 7.94;
i = ~~ i;
경고 (i);
var j = 7.34;
J = ~~ J;
경고 (j);
</스크립트>
</html>
위에서 언급 한 바와 같이, ~~가없는 경우, 임의의 소수점이 얻어지고 소수점의 소수 부분이 제거되고 정수가 유지됩니다. 위의 i = 7, j = 7. 그러나이 메커니즘은 C에 존재하지 않습니다. C에서는 플로트가 비트 단위로 반전 될 수 없으며 C에서는 캐스트 될 수 있습니다 (JS는이 메커니즘이 없지만 부동 소수점 번호는 정수로 변환됩니다.) 동일한 목적을 달성합니다. (소수점 부분을 버리고 정수 부분을 유지하십시오).