>  기사  >  웹 프론트엔드  >  JavaScript에서 표현식 앞에 물결표 연산자를 사용하는 이유는 무엇입니까?

JavaScript에서 표현식 앞에 물결표 연산자를 사용하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 18:35:35593검색

Why is the Tilde Operator Used Before an Expression in JavaScript?

선행 표현식에서 물결표 연산자의 중요성

물결표 연산자(~)는 JavaScript의 모든 비트를 뒤집는 비트 연산자입니다. 피연산자. 이 연산자는 표현식 평가 전에 자주 사용되어 그 목적과 의미에 대한 의문을 제기합니다.

다음 예제 코드를 살펴보겠습니다.

var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() )
           ? 'value'
           : 'innerHTML'

이 코드에서 물결표 연산자는 표현식 평가 앞에 사용됩니다. indexOf() 함수. indexOf() 함수는 문자열 내에서 대상 문자열이 처음 나타나는 인덱스를 반환합니다. 대상 문자열을 찾을 수 없으면 -1을 반환합니다.

물결표 연산자의 효과

물결표 연산자는 indexOf()의 반환 값을 32로 변환합니다. -bit 정수이며 모든 비트를 뒤집습니다. 예를 들어, indexOf()가 -1(대상 문자열을 찾을 수 없음을 나타냄)을 반환하는 경우 물결표 연산자는 이진 표현의 모든 비트를 뒤집습니다.

0000 0000 0000 0000 0000 0000 0000 0001 (original)
=>
1111 1111 1111 1111 1111 1111 1111 1110 (inverted)

결과는 다음과 같은 양수입니다. JavaScript에서는 진실로 취급됩니다. 따라서 ~'input,textarea'.indexOf(target.tagName.toLowerCase()) 표현식은 대상 문자열이 없으면 true로 평가되고, 있으면 false로 평가됩니다.

사용 물결표 연산자의 경우

흔하지 않지만 물결표 연산자는 다양한 용도로 사용됩니다. 포함:

  • 저수준 프로그래밍: 비트를 직접 조작할 수 있습니다.
  • 성능 최적화: 비트 트릭에 사용할 수 있습니다. 특정 상황에서 성과를 향상시키기 위해.
  • 참/거짓 캐스팅: 찾을 수 없는 경우에 대해 indexOf()의 반환 값을 실제 값으로 변환하는 트릭으로 사용할 수 있습니다.
  • 숫자 잘림: 악용될 수 있습니다. 숫자를 32비트로 자르고 양수에 대해 Math.floor()를 효과적으로 수행합니다.

물결표 연산자의 대안

문자열이나 배열에 값이 있는지 테스트하기 위해 JavaScript는 이제 전용 메서드를 제공합니다.

  • Array.prototype.includes() arrays
  • String.prototype.includes() for strings

이 메소드는 부울 값을 직접 반환하므로 물결표에 대한 더 명확하고 효율적인 대안이 됩니다. 연산자.

결론

물결 기호 연산자는 표현식 앞에 올 때 표현식의 값을 비트 표현으로 변환하고 모든 비트를 뒤집습니다. 여러 가지 모호한 용도가 있지만 일반적으로 Array.prototype.includes() 및 String.prototype.includes()와 같은 최신 방법에 비해 명확성이 부족하고 관련성이 떨어지기 때문에 사용하지 않는 것이 좋습니다.

위 내용은 JavaScript에서 표현식 앞에 물결표 연산자를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.