자바스크립트 함수 앞에 느낌표(!) 사용법

2024-07-27

함수 표현식 만들기:

함수 앞에 느낌표를 붙이면 함수 선언문이 아닌 함수 표현식으로 만들어집니다. 함수 표현식은 값으로 할당하거나 다른 표현식과 함께 사용할 수 있는 자바스크립트 객체입니다.

예를 들어, 다음 코드는 함수 표현식을 사용하여 greet라는 함수를 만듭니다.

const greet = !function() {
  console.log('안녕하세요!');
};

greet(); // 안녕하세요! 출력

즉시 실행 함수:

함수 표현식을 만들 외에도 느낌표는 즉시 실행 함수를 만드는 데에도 사용됩니다. 즉시 실행 함수는 선언 즉시 실행되는 함수입니다.

예를 들어, 다음 코드는 즉시 실행 함수를 사용하여 "안녕하세요!"를 콘솔에 출력합니다.

!(function() {
  console.log('안녕하세요!');
})(); // 안녕하세요! 출력

주의 사항:

  • 느낌표를 사용하여 함수를 선언하면 함수 호이스팅이 일어나지 않습니다. 즉, 함수를 선언하기 전에 함수를 호출하면 오류가 발생합니다.
  • 즉시 실행 함수는 코드를 간결하게 만들 수 있지만, 코드 가독성을 저하시킬 수 있습니다. 따라서 명확하고 이해하기 쉬운 코드를 작성하는 데 유의해야 합니다.

느낌표 사용의 장점:

  • 코드를 압축할 수 있습니다.
  • 간단한 함수를 빠르고 쉽게 만들 수 있습니다.
  • 함수 호이스팅이 일어나지 않습니다.
  • 코드 가독성을 저하시킬 수 있습니다.



자바스크립트 함수 앞에 느낌표(!) 사용 예제 코드

// 함수 표현식을 사용하여 변수에 할당
const greet = !function() {
  console.log('안녕하세요!');
};

greet(); // 안녕하세요! 출력

// 함수 표현식을 다른 표현식과 함께 사용
const message = `안녕하세요! ${!function() {
  return '환영합니다.';
}}`;

console.log(message); // 안녕하세요! 환영합니다. 출력
// 즉시 실행 함수를 사용하여 "안녕하세요!" 출력
!(function() {
  console.log('안녕하세요!');
})(); // 안녕하세요! 출력

// 즉시 실행 함수를 사용하여 값 반환
const result = !(function() {
  return 10;
})();

console.log(result); // 10 출력

조건부 실행:

// 조건에 따라 즉시 실행 함수 실행
const isLoggedIn = true;

if (isLoggedIn) {
  !(function() {
    console.log('환영합니다!');
  })();
} else {
  console.log('로그인이 필요합니다.');
}

오류 처리:

// 오류 발생 시 즉시 실행 함수 실행
try {
  console.log(someFunction());
} catch (error) {
  !(function() {
    console.error('오류 발생:', error);
  })();
}

참고:

  • 위 예제 코드는 자바스크립트 함수 앞에 느낌표를 사용하는 다양한 방법을 보여줍니다.
  • 실제 상황에 따라 적절한 방법을 선택해야 합니다.
  • 코드 가독성을 유지하기 위해 명확하고 이해하기 쉬운 코드를 작성하는 것이 중요합니다.



function functionName(parameter1, parameter2) {
  // 함수 본문
}

함수 표현식:

const functionName = function(parameter1, parameter2) {
  // 함수 본문
};

두 방법 모두 동일한 기능을 제공하지만, 몇 가지 주요 차이점이 있습니다.

함수 호이스팅:

  • 함수 선언문은 함수 호이스팅이라는 특성을 가지고 있습니다. 즉, 함수 선언은 코드의 맨 위로 올라가는 것처럼 작동합니다.
  • 반면에 함수 표현식은 호이스팅되지 않습니다. 즉, 함수 표현식이 선언된 위치에서만 사용할 수 있습니다.

범위:

  • 함수 선언문은 함수가 선언된 블록 범위 밖에서도 사용할 수 있습니다.

명명:

  • 함수 선언문은 반드시 함수 이름을 지정해야 합니다.
  • 반면에 함수 표현식은 함수 이름을 생략할 수 있습니다.

사용 시나리오:

  • 함수 선언문은 다음과 같은 경우에 사용하는 것이 좋습니다.
    • 함수를 코드의 다른 부분에서 사용할 경우
    • 함수 이름을 사용하여 함수를 명확하게 식별해야 하는 경우
  • 함수 표현식은 다음과 같은 경우에 사용하는 것이 좋습니다.
    • 간단하고 익명의 함수를 만들 경우
    • 함수를 변수에 할당하거나 다른 표현식과 함께 사용하는 경우

느낌표(!)를 사용하면 함수 표현식을 만들 수 있으며, 즉시 실행 함수를 만드는 데에도 사용할 수 있습니다.


javascript function



Prototype을 사용하여 텍스트 영역을 자동 크기 조정하는 방법 (HTML, CSS, JavaScript)

이 글에서는 Prototype 프레임워크를 사용하여 텍스트 영역의 크기를 입력되는 텍스트 양에 따라 자동으로 조절하는 방법을 설명합니다.필수 조건Prototype 프레임워크 설치기본적인 HTML, CSS 및 JavaScript 지식...


JavaScript에서 소수점 숫자 유효성 검사: IsNumeric() 함수에 대한 한국어 설명

JavaScript에서 사용자 입력값이나 외부 데이터를 처리할 때, 해당 값이 숫자인지 아닌지를 판단하는 것은 매우 중요합니다. 특히 소수점 숫자의 경우, 잘못된 형식의 입력이 들어올 경우 예상치 못한 오류를 발생시킬 수 있기 때문에 엄격한 유효성 검사가 필요합니다...


jQuery를 사용하여 HTML 문자열을 이스케이프하는 방법

jQuery를 사용하여 HTML 문자열을 이스케이프하는 방법은 두 가지가 있습니다.1. jQuery. text() 메서드 사용jQuery. text() 메서드는 HTML 문자열을 이스케이프 처리하여 안전하게 출력합니다...


jQuery 배우기: 장소와 가치 평가

jQuery는 자바스크립트를 더욱 쉽고 효율적으로 사용할 수 있도록 돕는 자바스크립트 라이브러리입니다. 웹 개발에서 흔히 사용되는 작업들을 간소화하여 웹 페이지 상의 요소 선택, 조작, 애니메이션, 이벤트 처리 등을 보다 직관적이고 간결하게 수행할 수 있도록 지원합니다...


JavaScript에서 undefined 객체 속성 감지하기

JavaScript에서 객체의 속성이 존재하지 않거나 undefined인 경우를 판별하는 것은 매우 중요합니다. 이는 예상치 못한 오류를 방지하고 코드의 안정성을 높이는 데 기여합니다.값이 할당되지 않은 변수: 변수를 선언했지만 아직 어떤 값도 할당하지 않았을 때, 해당 변수의 값은 undefined입니다...



javascript function

웹 페이지에서 정의된 글꼴 중 어떤 글꼴이 사용되었는지 감지하는 방법 (JavaScript, HTML, CSS)

하지만, JavaScript, HTML 또는 CSS만으로는 웹 페이지에서 정의된 모든 글꼴을 정확하게 감지하기 어렵습니다. 이는 브라우저마다 글꼴 렌더링 방식이 다르고, 웹 페이지가 동적으로 글꼴을 로드할 수 있기 때문입니다


자바스크립트, HTML 및 팝업을 사용하여 브라우저가 팝업을 차단하는지 감지하는 방법

따라서 책임감 있는 웹 개발자는 사용자의 브라우저 설정을 존중하면서도 팝업이 필요한 경우 사용자에게 알릴 수 있는 방법을 찾아야 합니다.다음은 자바스크립트, HTML 및 팝업을 사용하여 브라우저가 팝업을 차단하는지 감지하는 두 가지 일반적인 방법입니다


HTML 요소의 배경색을 JavaScript의 CSS 속성을 사용하여 설정하는 방법

단계:HTML 요소 선택: 먼저 배경색을 변경하려는 HTML 요소를 선택해야 합니다. 이를 위해 JavaScript의 document. getElementById() 또는 document. querySelector() 함수를 사용할 수 있습니다


JavaScript 객체의 길이: 자세한 설명

JavaScript에서 객체의 길이를 측정하는 것은 배열의 길이를 측정하는 것과는 약간 다릅니다. 왜냐하면 객체는 순서가 정해져 있지 않은 데이터의 집합이기 때문입니다. 일반적으로 객체의 길이는 객체가 가지고 있는 속성(property)의 개수를 의미합니다


자바스크립트, jQuery, 데이터 구조를 사용한 그래프 시각화 라이브러리 프로그래밍

자바스크립트 그래프 시각화 라이브러리는 복잡한 관계 데이터를 시각적으로 표현하는 데 도움이 되는 강력한 도구입니다. 이러한 라이브러리는 웹 애플리케이션, 데이터 분석 도구 및 연구 시각화 등 다양한 분야에 사용될 수 있습니다