익명 함수
익명 함수는 이름에서 알 수 있듯이 지정된 이름이 없는 함수입니다. 대신 식별자 없이 정의되며 일반적으로 변수에 할당되거나 다른 함수의 인수로 직접 사용됩니다. 익명 함수를 선언할 때는 이름을 붙이지 않습니다.
변수에 할당된 익명 함수의 예를 보겠습니다.
이 경우 myFunction은 익명 함수를 보유하는 변수가 됩니다. 그런 다음 변수 이름을 사용하여 이 함수를 호출할 수 있습니다.
자바스크립트의 익명 함수에는 여러 사용 사례와 이점이 있어 개발자 툴킷에서 유용한 도구가 됩니다. 익명 함수를 사용하는 몇 가지 이유에 대해서 살펴보겠습니다.
콜백: 익명 함수의 가장 일반적인 사용 사례 중 하나는 콜백입니다. 특정 작업이 완료되면 함수가 나중에 실행될 것으로 예상하는 다른 함수에 인수로 전달할 수 있습니다. 이는 이벤트 처리, HTTP 요청 또는 애니메이션 수행과 같은 비동기 작업에 특히 유용합니다.
IIFE(Immediately Invoked Function Expressions): 익명 함수를 사용하여 정의된 직후에 실행되는 함수인 IIFE를 생성할 수 있습니다. 이는 전역 범위와의 잠재적인 충돌을 피하면서 변수에 대한 로컬 범위를 만드는 데 도움이 됩니다.
클로저: 익명 함수를 사용하여 클로저를 생성할 수 있으며 이를 통해 실행이 완료된 후에도 엔클로징 함수의 변수에 대한 액세스를 유지할 수 있습니다. 이는 데이터 캡슐화 및 개인 변수 생성에 특히 유용합니다.
이벤트 리스너: 이벤트 리스너를 HTML 요소에 연결할 때 익명 함수를 이벤트 핸들러로 사용하는 경우가 많습니다. 이렇게 하면 별도의 명명된 함수를 만들 필요 없이 간결한 방식으로 이벤트를 처리할 수 있습니다.
함수형 프로그래밍: 익명 함수는 함수형 프로그래밍 패러다임에서 널리 사용되며 map, filter 및 reduce와 같은 고차 함수에 대한 인수로 전달될 수 있습니다. 이를 통해 강력하고 표현력이 풍부한 코드 구성이 가능합니다.
전반적으로 익명 함수는 특정 이름을 할당할 필요 없이 즉석에서 함수를 정의하여 보다 간결하고 유연한 코드를 작성할 수 있는 방법을 제공합니다. 함수를 한 번만 사용해야 하거나 함수 이름이 코드 가독성에 어떤 값도 추가하지 않는 상황에서 특히 유용합니다.
즉시 실행 함수
즉시 실행 함수는 함수를 정의함과 동시에 실행하는 함수 입니다.
즉시 실행 함수 소스를 살펴 보겠습니다.
이 예제에서는 익명 함수를 정의하고 (function() { ... }) 괄호로 묶었습니다. 그런 다음 () 끝에 추가 괄호 쌍을 사용하여 즉시 호출합니다.
이 코드를 실행하면 즉시 함수가 실행되고 메시지가 콘솔에 기록됩니다.
화살표 함수
화살표 함수는 JavaScript에서 함수를 작성하는 간결하고 편리한 방법입니다. ECMAScript 6(ES6)에서 도입되었으며 기존 함수 표현식에 비해 더 짧은 구문을 제공합니다. 화살표 함수는 단순성과 암시적 동작으로 인해 최신 자바스크립트 개발에서 인기가 있습니다.
화살표 함수의 기본 구문은 다음과 같습니다.
화살표 함수의 구성 요소를 분석해 보겠습니다.
매개변수: 함수가 허용하는 매개변수(있는 경우) 목록으로 괄호로 묶여 있습니다. 매개변수가 하나만 있는 경우 괄호를 생략할 수 있습니다. 매개변수가 없는 경우에도 빈 괄호를 포함해야 합니다.
화살표(=>): 화살표 함수의 특징입니다. 함수 본문에서 매개변수 목록을 분리합니다. 기본적으로 전통적인 함수 표현식의 function 키워드를 대체합니다.
함수 본문: 함수의 논리를 포함하는 코드 블록입니다. 함수에 문이 하나만 있는 경우 중괄호 {} 및 return 키워드를 생략할 수 있으며 결과는 암시적으로 반환됩니다.
감사합니다.
틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!
공감과 댓글 부탁드립니다.
'JavaScript' 카테고리의 다른 글
[자바스크립트] 배열, Array 객체 (0) | 2023.07.30 |
---|---|
[자바스크립트] 객체와 객체를 이용한 프로그램 (2) | 2023.07.29 |
[자바스크립트] let과 constant (0) | 2023.07.24 |
[자바스크립트] 함수와 함수를 이용한 프로그램 (0) | 2023.07.20 |
[자바스크립트] 제어문(2) (0) | 2023.07.10 |