답변
그건의 부호없는 오른쪽 시프트 연산자 . 흥미롭게도 JavaScript에서 서명되지 않은 유일한 비트 연산자 입니다 .
>>> 연산자는 expression1의 비트를 expression2에 지정된 비트 수만큼 오른쪽으로 이동합니다. 왼쪽부터 0이 채워집니다. 오른쪽으로 이동 한 숫자는 삭제됩니다.
답변
의도 된 의미를 무시하면 다음과 같이 사용 된 것을 볼 수 있습니다.
>>> 0
모든 유형을 양의 정수로 변환하는 유일한 연산자라는 점에서 고유합니다.
"string" >>> 0 == 0
(function() { }) >>> 0 == 0
[1, 2, 3] >>> 0 == 0
Math.PI >>> 0 == 3
귀하의 예에서 var len = this.length >>> 0
, 이것은 this
유형 this.length
이 무엇이든간에 반복하는 데 사용할 정수 길이를 얻는 방법입니다 .
마찬가지로 ~~x
모든 변수를 부호있는 정수로 변환하는 데 사용할 수 있습니다.
답변
그 연산자는 논리적 오른쪽 시프트입니다. 여기서 숫자는 0 비트로 이동합니다. 수학적으로 0 비트의 이동은 효과가 없어야합니다.
그러나 여기서는 값을 부호없는 32 비트 정수로 변환하는 데 사용됩니다.
답변
>>>
비트 연산자, 제로 채우기 오른쪽 시프트 .
>>> 0
양수에 대한 유일한 효과는 Math.floor()
. 일반적으로 .length
속성 (예 :의 Array
)이 이미 정수 이기 때문에 귀하의 예제에서 이것이 왜 필요한지 모르겠습니다 .
나는 또한 ~~
같은 방식으로 사용 된 약간 더 짧은 것을 보았다 : ~~9.5 == 9; // true
.
답변
