Front-End/javascript
[Javascript 기초] 함수의 이해
김기.
2023. 4. 24. 23:08
함수는 자바스크립트 기본 구성 요소 중 하나입니다.
함수란 자주 쓰는 실행코드들을 블록단위 묶어서 패키징 해놓은 상태를 말하며,
자바스크립트 코드를 작성하 자주 쓰는 코드들을 기능 단위 재사용하기 위해서 존재합니다.
함수를 사용하기 위해서는 미리 function 키워드를 이용해 자주 쓸 코드들을 묶어서
정의해야 하고(함수 정의), 정의된 함수를 호출하여 기능을 실행할 수 있습니다.(함수 호출)
함수의 종류로는 다음과 같습니다.
1. 선언적함수
2. 익명함수
3. 대입형함수
4. 즉시실행함수
1. 선언적함수
선언적함수는 함수에 미리 이름을 붙여서 정의해 둔 형태입니다.
자바스크립트를 읽을 때 선언적함수를 우선으로 읽고, 호출 위치가 자유롭다는 특징을 가집니다.
//선언적함수
plus(); // (정상적으로 함수 호출), 3
function plus(){
const num1 = 1;
const num2 = 2;
console.log(num1+num2);
}
plus(); // (정상적으로 함수 호출), 3
2. 익명함수
익명함수는 이름 없이 함수를 정의한 형태입니다.
익명함수 자체만으로 호출이 불가능하고, 변수에 익명함수를 대입하거나(대입형함수)
특정 이벤 객체에 대입하는 식으로 호출이 가능합니다.
//익명함수
function (){
const num1 = 1;
const num2 = 2;
console.log(num1-num2);
}
3. 대입형함수
대입형함수는 변수에 익명함수가 대입된 형태입니다.
선언적함수와는 다르게 순차적으로 실행이 됩니다.
//대입형함수
minus(); // (함수 호출 불가)
const minus = function(){
const num1 = 1;
const num2 = 2;
console.log(num1-num2);
}
minus(); // (정상적으로 함수 호출), -1
4. 즉시실행함수
즉시실행함수는 함수 정의와 동시에 즉시 호출하며, 익명함수를 사용하는 것이 일반적입니다.
즉시실행함수를 쓰는 이유는 즉시실행함수 내부의 값을 캡슐화하여 불필요한 전역 변수의 생성을 줄일 수 있고,
private 한 변수를 만들 수 있기 때문입니다.
*캡슐화 : 일반적으로 연관 있는 변수와 함수를 클래스로 묶는 작업, 은닉성으로 외부에서의 접근을 막아 중요한 데이터를 보존, 보호
즉시실행함수는 화살표함수로 축약시킬 수 있습니다.
//즉시실행함수
(function (){
const num1 = 1;
const num2 = 2;
console.log(num1+num2);
})();
//화살표함수를 통한 축약형
(() => {
const num1 = 1;
const num2 = 2;
console.log(num1+num2);
})();