React

[React #4] 함수 선언식/함수 표현식/화살표 함수/콜백 함수

PEAZH 2024. 2. 13. 16:57
반응형

01. 함수 선언식 (함수 선언 방식의 함수)

 

💡 함수는 중복되는 동일한 코드를 효율적으로 줄이기 위해 사용

area(10, 20); // 200
area(20, 20); // 400

function area(width, height) {
	console.log(width * height);
}

area(10, 30); // 300
area(10, 40); // 400
  • 소괄호의 역할 : 매개변수를 전달하고 받는 과정을 전달하기 위함
  • 함수 내부에서 선언한 변수나 상수는 밖에서 접근할 수 없음 -> 지역변수
  • 함수 외부에 선언된 변수나 상수는 함수 내부에서 접근할 수 있음 -> 전역변수 (글로벌 함수)
  • 호이스팅 : 함수 선언식으로 만들어진 함수들은 프로그램 실행 전 코드의 최상단으로 올라감
    -> 밑에서 함수 선언을 해도 위에서 호출할 수 있음

 

02. 함수 표현식

 

💡 함수를 변수에 담아서 활용하는 방식 (무명함수)

let helloA = function () {
  return "hello A";
};

console.log(helloA); // ƒ helloA() {}
console.log(helloA()); // hello A
  • 호이스팅이 일어나지 않음
  • 해당 함수가 직접적으로 선언하기 전에는 호출할 수 없음

 

03. 화살표 함수

 

💡 무명함수를 간단하고 간결하게 작성할 수 있도록 도와주는 문법

 

  • 호이스팅의 대상이 아님
let helloA = () => {
  return "hello A";
};

console.log(helloA()); // hello A

 

  • 구현부가 return밖에 없을 경우 return과 중괄호 생략 가능
let helloA = () => "hello A";

console.log(helloA()); // hello A

 

 

04. 콜백 함수

 

💡 함수의 파라미터로 함수를 넘기는 것

function checkMood(mood) {
  if (mood === "good") {
    // 기분 좋을 때 동작
    sing();
  } else {
    // 기분 안 좋을 때 동작
    cry();
  }
}

function cry() {
  console.log("ACTION :: CRY");
}

function sing() {
  console.log("ACTION :: SING");
}

function dance() {
  console.log("ACTION :: DANCE");
}

checkMood("good"); // ACTION :: SING
  • 이렇게 작성하면 기분이 좋을 때나 안 좋을 때 동작을 직접 바꿔줘야 함

 

function checkMood(mood, goodCallback, badCallback) {
  if (mood === "good") {
    // 기분 좋을 때 동작
    goodCallback();
  } else {
    // 기분 안 좋을 때 동작
    badCallback;
  }
}

function cry() {
  console.log("ACTION :: CRY");
}

function sing() {
  console.log("ACTION :: SING");
}

function dance() {
  console.log("ACTION :: DANCE");
}

checkMood("bad", sing, cry()); // ACTION :: CRY
  • 함수 표현식의 개념을 이용하여 function cry라는 함수를 'badCallback'이라는 매개변수의 값을 담아서 전달함

 

 

참고자료

이정환 Winterlood, '한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지'
반응형