연산자~는 비트 단위 부정을 의미합니다. 표면적으로는 ~~(역순 다음 부정)은 의미가 없습니다. 실제로 JS에서는 부동 소수점 숫자를 정수로 변환할 수 있습니다.
script>
var myArray();
myArray.push("a")
myArray.push("c"); 🎜>myArray .push("d");
//이제 배열에서 요소를 무작위로 꺼내야 합니다.
var random = myArray[~~(Math.random()*myArray. length)]; // Math.random()은 0과 1 사이의 의사 난수를 반환합니다. 이는 0일 수 있지만 항상 1보다 작습니다. [0,1)
var i = 7.94; 🎜>i = ~~i ;
alert(i);
var j = 7.34;
j = ~~j
위와 같이 ~~가 없으면 소수점 이하 부분은 임의로 구합니다. 제거되어 정수가 남습니다. 위와 같이 i=7, j=7이다. 그러나 이 메커니즘은 C에는 존재하지 않습니다. 부동 소수점 숫자(float)는 C에서 비트 단위로 반전될 수 없으며 강제 유형 변환은 C에서 사용할 수 있습니다(그러나 JS에는 그러한 메커니즘이 없습니다. 부동 소수점 숫자는 정수로 변환됩니다. . )는 동일한 목적을 달성합니다(소수 부분을 버리고 정수 부분을 유지함).