이중 물결표 연산자: ~~
JavaScript에서는 " 이중 물결표" 연산자. 단일 물결표 ~는 비트 단위 NOT을 나타내는 반면, 이중 물결표는 어떤 역할을 하는지 궁금할 수 있습니다.
직관과는 달리 ~~는 NOT 연산의 NOT을 수행하지 않습니다. 대신, 피연산자를 암시적으로 32비트 정수로 변환하고 소수점 이하의 모든 항목을 제거합니다. 이 동작은 숫자와 문자열 모두에 적용됩니다.
기술적으로 ~~는 다음 함수처럼 동작합니다.
<code class="javascript">function(x) { if(x < 0) return Math.ceil(x); else return Math.floor(x); }</code>
그러나 피연산자 x가 다음 범위 내에 있을 때만 정확한 결과를 제공합니다. -(2^31) ~ 2^31 - 1. 이 범위를 벗어나면 오버플로가 발생하여 숫자가 "줄바꿈"됩니다.
문자열 인수의 숫자 구문 분석에 ~~를 사용하고 싶은 유혹이 생길 수 있습니다. , 그러나 이는 권장되지 않습니다. 정수가 아닌 경우 오버플로 및 부정확함으로 인해 잘못된 선택이 됩니다. 대신 x 또는 Number(x)를 사용하세요.
이중 물결표를 NOT의 NOT으로 이해
NOT 연산을 ~~ 효과적으로 수행하는 방법을 이해하려면 다음을 고려하세요. 다음 예:
숫자 -43.2는 부호 있는 32비트 이진수로 표시됩니다.
-43.2 = 11111111111111111111111111010101 (2)
비트 단위 NOT 적용:
NOT -43.2 = 00000000000000000000000000101010 (2) = 42
두 번째 적용 비트 NOT:
NOT 42 = 11111111111111111111111111010101 (2) = -43
간단한 방식으로 NOT 연산의 NOT을 수행하지 않더라도 ~~ 연산자는 두 개의 연속 비트 NOT 연산과 동일한 결과를 생성합니다.
위 내용은 JavaScript에서 이중 물결표(~~) 연산자는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
if($res){
return json_encode(array('code'=>1,'msg'=>'成功'));
}else{
return json_encode(array('code'=>0,'msg'=>'失败'));
}
}
public function
}