포스트

자바스크립트에서 느낌표(!)가 함수 앞에 오는 이유

느낌표(!)의 기본 작동 원리

자바스크립트에서 느낌표(!)는 주로 불리언 값을 부정할 때 사용됩니다. 즉, truefalse로, falsetrue로 바꿉니다. 예를 들어, !truefalse가 됩니다.

함수 앞에 느낌표 사용의 목적

함수 앞에 느낌표(!)를 붙이는 것은 자주 볼 수 있는 패턴이 아니지만, 특별한 목적으로 사용됩니다. 이는 주로 즉시 실행 함수 표현식(IIFE, Immediately Invoked Function Expression)에서 볼 수 있습니다. 느낌표를 함수 앞에 붙이면, 함수는 즉시 실행되고 그 결과가 부정됩니다.

예:

1
2
3
!function() {
  console.log("Hello World");
}();

이 예시에서 Hello World가 콘솔에 출력되고, 함수의 반환값(기본적으로 undefined)이 부정되어 true가 됩니다.

왜 이렇게 사용하는가?

  1. 코드 최적화: 느낌표를 사용하면, 자바스크립트 엔진은 즉시 함수를 실행합니다. 이 방법은 코드를 약간 더 빠르게 만듭니다.

  2. 명확성: 이러한 방법을 사용하면 개발자는 이 코드 블록이 IIFE임을 더 명확하게 표시할 수 있습니다.

  3. 스코프 제한: IIFE를 사용하면 변수가 전역 스코프에 노출되지 않습니다. 따라서 변수 충돌을 방지할 수 있습니다.

주의할 점

이 패턴은 자바스크립트 내에서 특별한 경우에만 사용되므로, 일반적인 상황에서는 굳이 사용할 필요가 없습니다. 또한, 이해하기 어려울 수 있으므로 코드의 가독성을 해칠 가능성이 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.