## JavaScript에서 ~~ 연산자는 무엇을 합니까?

Barbara Streisand
풀어 주다: 2024-10-25 12:55:03
원래의
562명이 탐색했습니다.

## What Does the ~~ Operator Do in JavaScript?

JavaScript의 ~~ 연산자 해독

게임 물리학 라이브러리를 탐색하는 동안 수수께끼의 ~~ 연산자를 접했을 수도 있습니다. ~(비트 NOT) 연산자와 유사하므로 해당 기능에 대한 의문이 생깁니다. 단순히 동일한 값을 반환하는 이중 부정인가요?

놀랍게도 ~~ 연산자는 실제로 비트 단위 NOT 기원을 초월합니다. 이는 소수점 이하의 모든 항목을 제거하는 고유한 목적을 제공합니다.

소수점 제거에 대한 추론

이 동작은 피연산자를 부호 있는 32로 암시적으로 변환하는 데서 비롯됩니다. -bit 비트 연산이 수행되기 전의 정수입니다. 결과적으로 ~~ 연산자는 다음과 같이 작동합니다.

function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}
로그인 후 복사

그러나 이 변환은 입력 값(x)이 -(2^31) ~ 2^31 - 1. 이러한 경계를 초과하면 데이터 오버플로가 발생하여 잠재적으로 예기치 않은 동작이 발생할 수 있습니다.

~~

변환 기능에도 불구하고 ~~

사용의 장점과 단점 문자열을 숫자로 변환하는 경우 오버플로에 취약하므로 ~~ 사용 시 주의해서 접근해야 합니다. 또한 의도된 목적은 수치 변환과 완전히 일치하지 않습니다. 대신 x 또는 Number(x)가 더 안정적이고 직관적인 옵션을 제공합니다.

Bitwise NOT Logic

  • 왜 ~~가 32비트에서 이중 부정으로 작동하는지 이해하려면 정수의 경우 -43.2:
  • -43.2의 이진수: 1111111111111111111111111010101
  • 비트별 NOT: 모든 비트를 반전합니다. 결과는 0000000000000000000000000101010
  • 이중 부정: 모든 비트를 다시 반전하여 원래 이진 표현을 복원합니다. >소수 변환:
  • -43.0

이 이중 부정은 데이터를 소수 잘림 전의 초기 상태로 효과적으로 "반전"합니다.

위 내용은 ## JavaScript에서 ~~ 연산자는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!